I've had trouble wrapping my head around the question when to use 1-to-many relationships in Marketing Cloud Contact Builder. I know as theoretical concept you should use 1-to-M relationships if e.g. connecting a customer data extension with orders data extension (i.e. one customer can have many orders). However, unlike 1-to-1, what does it mean in practice? Am I mapping multiple fields in such instance or ?enter image description here I've posted a screenshot of an example from a SF education.

1 Answer 1


table = dataextension

I am not 100% sure if i got your question right but will try to describe it with the screenshot you provided.

First thing you should understand is the difference between a primary key and a foreign key. PrimaryKeys are used to identify a uniqueness in a particular table. Foreign keys are used to define relationsships between tables. Imagine you want to search all orders from a particular customer. Then you make a relationship from Contacts to Orders which would be 1 contactkey inside the table "ContactKey" can have multiple orders inside the Orders table.

When a relationship is marked as 1 to 1 there can only be one record in for each contactkey. That is commonly used when you would relate static values to a customer like prename, surname, ... . Meaning you have a table / dataextension with many fields like those i have mentioned and one of them is customerID which will be related to the contact key.

When you want to store multiple records for one customer you need to have a 1:M relationship. If you would have set this to 1:1 each contact could only have 1 order (with all the fields of that particular order).

Does this clarify your question?

  • Great answer! If I understood it correctly, in our example, 1-to-M cardinality is used to tell MC that a customer can have multiple orders with accompanying data associated to that customer. So, if I would make a mistake and in this case set up the relationship as 1-to-1, this would mean that MC would just query the e.g. first order the customer made and disregard the remaining orders?
    – nix9247
    Apr 5, 2019 at 8:52
  • I have not done this inside marketing cloud but usually this creates errors because you won't even be allowed to create a second row with a customer that already exists in that table. Apr 5, 2019 at 8:56
  • 1
    Please understand that one-to-many relationships can only be used in Audience Builder (which is the only application that uses one-to-many relationships). As I explained in this question, one-to-many relationships won't work in Journey Builder. You can see the attribute relationship in Contact Builder, but it's only relevant when creating dimensions in Audience Builder. Apr 8, 2019 at 3:48
  • I'm confused now, because at a SF training, we've used 1-to-M relationship when preparing the attribute groups in Audience Builder to be used later on in Journey Builder. Are you saying that (and I saw that in your post) JB cannot send contacts down more than 2 paths based on the filter stemming from the data in Data Extensions?
    – nix9247
    Apr 9, 2019 at 13:29
  • Eliot's post tell you if a person has three entries in a table,the journey builder cannot understand which entry it has to take.Therefore it checks if the condition on the first branch evaluates to true,If it does it takes the first path,if not it tries to apply the second condition if this evaluates to true, it takes this path. However you wont ever see it taking the second path although the condition would also be fulfilled, because he would have already entered the first. A contact can only take one path inside a journey and not multiple paths. To cover eliots example you need more splits Apr 9, 2019 at 14:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .