sql >> Database >  >> RDS >> Mysql

Mysql-databaseontwerp voor meerdere adressen van klanten en standaardadres

Naar mijn mening maak je dit veel te ingewikkeld. Het is niet nodig om uw adresschema zo over-genormaliseerd te maken. De meeste systemen die ik heb gezien die meerdere klantadressen verwerken, hebben een klantentabel zoals die van jou, en hebben dan een adrestabel, als volgt:

 customer_id
 address_ordinal  (small number for each customer: 0,1,2,3 etc).
 primary    (boolean)
 address_1
 address_2
 locality   (city, village, etc)
 province   (state, etc)
 postcode   (zip, postcode etc)
 country

customer_id is een refererende sleutel voor de customer tafel. De primaire sleutel is een samenstelling van (customer_id , address_ordinal ). De primary kolom is true als het adres het primaire adres is.

Wat betreft uw vraag over leveranciers, wilt u misschien een algemene tabel maken met de naam "contacten", en zowel uw klanten als leveranciers contact_id's geven.

Als uw systeem een ​​referentietabel bevat (misschien iets dat u bij een gegevensleverancier koopt) met (postcode, plaats, provincie) rijen, kunt u die gebruiken om uw adrestabel te vullen. Maar u moet voorkomen dat uw adressen alleen hardgecodeerde postcodes bevatten:die referentietabellen verouderen erg snel.



  1. Dynamische waarden kiezen uit HTML-formulier en opslaan in PHP-variabelen

  2. Databasemodellering voor internationale en meertalige doeleinden

  3. Bereken delta (verschil van huidige en vorige rij) mysql-groep per specifieke kolom

  4. hoe null te controleren of niet als mysql-gegevenstype een tijdstempel is met een standaardwaarde van 0000-00-00 00:00?