Hét vraag- en antwoordplatform van Nederland

Normen voor MySQL tabelnamen (naming conventions): verschil tussen 1:m en m:n relaties?

Omdat ik de tabelrelaties niet vastleg op database niveau, maar alleen in het ontwerp aangeef, wil ik graag uit de namen van relatietabellen laten blijken of het een 1:m, of een m:m relatie betreft.

Nu gebruik ik voor allebei underscores:

Customers_orders (geeft aan welke bestellingen uit tabel orders bij welke klant hoort)
Customers_cities (geeft aan in welke stad een klant is gehuisvest).

Het eerste geval is een 1:m tabel, want een order hoort bij 1 klant. Het 2e is een m:m tabel, want een klant kan in meerdere steden gehuisvest zijn, maar een stad kan ook meerdere klanten huisvesten.

Dat is aan de naamgeving niet te zien. Heeft hier iemand een oplossing voor?

Verwijderde gebruiker
12 jaar geleden
1.7K

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (3)

Je zou voor de gevallen waar het een 1:m relatie betreft, voor het deel waar de "1" voor staat, een enkelvoudig woord kunnen gebruiken.
In jouw geval zou "customerS_orders" dan veranderen in "customer_orders".
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden
Voor n:m tabellen heb je altijd koppeltabellen nodig. Soms kun je die een goede zinvolle naam geven, bijvoorbeeld meerdere studenten volgen meerdere vakken. De koppel tabel zou je dan "klas" kunnen noemen waarin een student_id en vak_id aan elkaar zijn gekoppeld. Als dat niet gaat kies ik vaak voor koppeltabellen een 2 (to) in de naamgeving bijvoorbeeld een vak zou dan student2course. Wat betreft parent child (1:n) kies ik ook soms voor een s. Probleem is dat vaak zo'n detail tabel ook weer een parent tabel is (bijvoorbeeld een order met vele producten). Vaak blijft het toch bij het noemen van de foreign key column.
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden
Verwijderde gebruiker
12 jaar geleden
Ja precies. Het blijft schipperen. Ik zou alleen zo graag willen dat er een mooie elegante manier zou zijn dat je de koppeltabellen kwa naam meteen zou kunnen onderscheiden van de 1:m tabellen. Maarja wel weer een paar ideetjes erbij. waarvoor dank.
Simpel: Als orders bij 1 klant horen noem je de relatie customer_orders (en niet customers)
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 2500
Gekozen afbeelding