Conception de base de données Multiples “informations de Contact” pour les différents tableaux
J'ai une base de données avec des tables "personne", "société", "boutique", etc. Beaucoup de ces tables doivent avoir des "informations de contact". La possibilité de concevoir cela a été demandé dans Conception de base de données - à l'instar des Informations de Contact pour plusieurs entités
Maintenant, dans ma base de données je laisse une possibilité d'avoir plusieurs adresses, plusieurs téléphones et plusieurs e-mails à chaque les données de contact des. C'est mon schéma de base de données:
Donc, je fais une table intermédiaire "contact" comme la manière la plus simple de lier une "informations de contact" à chaque table.
Ma question: est-ce une bonne pratique de le faire et d'avoir un tableau avec une seule ligne?
- Une seule Ligne ou une seule Colonne?
Vous devez vous connecter pour publier un commentaire.
C'est comment je pourrais la conception de votre base de données:
En Amérique du Nord, les numéros de téléphone ressembler à ceci: CC-AAA-EEE-SSSS-XXXXXXX où CC est le code du pays, l'AAA est le code de zone, EEE, c'est l'échange, SSSS est de la station et de XXXXX est l'extension.
Voir La norme ISO 3166-1.
Voir ISO 3166-2.
email_type_id
sur chacun desXXXX_emails
tables plutôt que de le mettre sur leemail
table, parce que tous les e-mails ont un type. Je suis de la conception de quelque chose de similaire et sont arrivés à la même conception que toi (à l'exception de ne pas briser le numéro de téléphone dans autant de colonnes), sauf que j'allais mettre le email_type_id sur l'e-mail de la table.email_type_id
dans leemails
table comme vous le suggérez, mais je voudrais aussi supprimer leid
colonne à partir de lashops_addresses
,shops_contacts
etshops_emails
tables. Je voudrais changer leurs respectifs des clés primaires pour être un composite deshop_id
etaddress_id
;shop_id
etcontact_id
; etshop_id
etemail_id
.Pas vraiment. Regarde ton schéma, je dois poser la question : peut un contact vraiment être lié à un nombre arbitraire de personnes ? Si non, vous devez utiliser la "personne" comme parent de la table et de faire les autres tables lien.
email -> idemail, mail, idperson, idcompany, idshop
Est-il vraiment mieux?Personnellement, je n'aime pas vraiment cette méthode parce que nous avons besoin de créer une Entité pour chaque table et beaucoup de tableaux associatifs. Je propose une table pour les informations de contact et un autre pour les adresses.
Et