W modelu relacyjnej bazy danych krotność relacji opisuje, ile rekordów jednej tabeli może być powiązanych z rekordami drugiej tabeli.
Dla encji Klient i Zamówienie w sklepie internetowym typowy sens biznesowy jest taki, że:
- jeden klient może złożyć wiele zamówień w czasie (np. kolejne zakupy w różnych dniach),
- pojedyncze zamówienie jest składane przez jednego, konkretnego klienta.
Z tego wynika relacja 1:n, gdzie "1" jest po stronie Klienta, a "wiele" po stronie Zamówienia. Warunek w treści ("każdy klient dokona przynajmniej dwóch zamówień") dodatkowo wzmacnia interpretację, że po stronie zamówień na pewno występuje wielokrotność.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- Odpowiedź "1:1" oznaczałaby, że jeden klient może mieć co najwyżej jedno zamówienie i jedno zamówienie dotyczy jednego klienta. To przeczy założeniu o co najmniej dwóch zamówieniach na klienta.
- Odpowiedź "1:n, gdzie 1 jest po stronie Zamówienia, a wiele po stronie Klienta" odwraca sens relacji. Sugerowałaby, że jedno zamówienie może być przypisane do wielu klientów, co w standardowym sklepie internetowym nie ma sensu (zamówienie ma jednego nabywcę).
- Odpowiedź "n:n" oznaczałaby, że wiele zamówień jest powiązanych z wieloma klientami jednocześnie. Taka relacja wymagałaby dodatkowej encji pośredniej i odpowiada raczej sytuacjom typu "klient–produkt" (wiele produktów kupowanych przez wielu klientów), a nie "klient–zamówienie".
W praktycznej implementacji relacji 1:n zwykle klucz obcy (np. identyfikator klienta) znajduje się w tabeli Zamówienie, co zapewnia spójność: nie da się wstawić zamówienia bez wskazania istniejącego klienta (o ile nie dopuszcza się zamówień "gościnnych").