Mysql
 sql >> база данни >  >> RDS >> Mysql

Дизайн на база данни на Mysql за множество адреси на клиенти и адрес по подразбиране

Според мен правите това твърде сложно. Няма нужда да правите вашата адресна схема толкова свръхнормализирана. Повечето системи, които съм виждал, които обработват множество адреси на клиенти, имат таблица с клиенти като вашата и след това имат таблица с адреси, както следва:

 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 е външен ключ за customer маса. Първичният ключ е съставен от (customer_id , address_ordinal ). primary колоната е true ако адресът е основният.

По отношение на вашия въпрос относно доставчиците, може да искате да създадете обща таблица, наречена "контакти", и да дадете както на вашите клиенти, така и на доставчици contact_ids.

Ако вашата система съдържа референтна таблица (може би нещо, което купувате от доставчик на данни), съдържаща редове (пощенски код, населено място, провинция), можете да я използвате, за да помогнете за попълването на вашата адресна таблица. Но трябва да избягвате да насилвате адресите ви да съдържат само твърдо кодирани пощенски кодове:тези референтни таблици остаряват много бързо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Максимална дължина на името на таблица в MySQL

  2. Създаване на jqplot графика с помощта на php

  3. Как да създадете LEFT JOIN с подзаявка SELECT с помощта на QueryBuilder в Доктрина 2?

  4. Търси се съпоставяне на MySQL, независимо от главните букви, където a !=ä

  5. mysql база данни прави падащо меню с помощта на данни, които вече са въведени в html/php