Fundering/fråga ang. "många-till-många" i relationsdatabas.

Permalänk
Medlem

Fundering/fråga ang. "många-till-många" i relationsdatabas.

Jag sitter med ett eget litet projekt nu när jag är ledig från skolan och skulle behöva lite input ang. ett "många-till-många" förhållande i en databas.

Jag ska göra en webbshop där en fiktiv kund ska kunna skapa ordrar osv.
Jag har en tabell för "order" och en för "user", mellan dessa har jag en tabell som representerar "m..n" förhållandet.
Om en kund väljer X antal av produkt A så kommer det skapas X antal kopplingar mellan produkten och ordern, och dessa rader kommer vara identiska förutom PK, men det en del redundans vilket man eg. vill undvika. Tanken som då slog mig är att i tabellen mellan order och user kommer det att skapas kopplingar mellan alla kunders ordrar och alla produkter som finns på ordrarna, vilket skulle kunna bli väldigt många. I ett riktigt scenario hade man så klart indexerat tabellen, men är det ett ok sätt att utforma tabellerna på?
Hur skulle man gjort i verkligheten?

Skiss över modellen, dock långt ifrån klar.

Visa signatur

There is always a price to pay for convenient

Permalänk
Medlem

På varje produkts koppling till ordern kan du ha antal och enhet, qty och unit, så blir det lättare att hantera och du slipper multipla kopplingar för samma produkt

Skickades från m.sweclockers.com

Visa signatur

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.

Permalänk
Medlem

@kundun:

Ja det är sant, det underlättar ju en del.
Kom på att man även skulle kunna spara priset i dena tabellen så att historiken även visar priset för tiden så ordern skapades.

Tack!

Visa signatur

There is always a price to pay for convenient

Permalänk
Medlem

I de faktiska implementationer för ehandel jag sett så är det vanliga att ha en tabell för lineitems istället för direkta relationer till produkter.
Lineitems har då en referens till ordern och även ev. shipment.
Denna tabell har inga referenser till produkttabellen utan är bara "mjukt" kopplad via ex SKU-id.
På så sätt slipper man tänka på livslängden för en produkt i produkttabellen och liknande.

Permalänk
Medlem

@Fooesque:

Aha! det där lät intressant, får kolla vidare på det, Tack.

Visa signatur

There is always a price to pay for convenient