2010-05-31 5 views
0

Je dois créer une conception db pour stocker les numéros de fax sur liste noire. J'ai créé une table et une colonne de cette table est customerID qui est une clé étrangère à la table client. Maintenant, je veux avoir un numéro de fax qui est mis sur liste noire pour tous les clients. Comment devrais-je procéder avec ceci. Devrais-je utiliser Null dans ce cas. S'il vous plaît fournir des optionsComment représenter "ALL" dans la relation clé primaire-clé étrangère

+0

Quoi que vous fassiez, rappelez-vous que la semaine prochaine, vous aurez une demande d'exception étant donné qu'un client spécifique a besoin d'accéder à ce numéro de liste noire, essayez donc de faciliter l'ajout d'exceptions aux listes noires. –

+0

ho1, bien. Aussi, qu'est-ce que cela signifie quand un numéro de fax est mis sur liste noire pour tous les clients, puis qu'un nouveau client est ajouté? Cela signifie-t-il que ce numéro de fax est également mis sur liste noire pour ce client? –

Répondre

2

Si sa blacklisté pour tous les clients ont alors une table séparée pour ceux qui n'ont pas de relations.

Il existe des numéros qui sont mis en liste noire pour tous et ceux qui sont mis en liste noire pour certains clients. Le nombre ne peut pas être défini par définition dans les deux cas. Ainsi, les nombres qui sont listés en noir pour certains nombres (et je suppose une relation many: many), vous pouvez utiliser le design classique de beaucoup de tables d'association. Pour les numéros qui sont mis en liste noire pour tous, il n'y a pas de relation avec les clients, ce qui n'implique aucune jointure. conditions. Étant donné que les données de chacun sont mutuellement exclusives, chaque type de données apparaît dans des tables différentes.

Je ne peux pas sembler obtenir une image, de la façon dont je vois la conception de base, pour afficher donc je vais juste coller le lien ici: http://www.freeimagehosting.net/image.php?9046f1985c.png

+0

U veut dire que créer 2 tables une avec relation de customerID et faxnumber et autre table pour tous les clients. Ne serait-ce pas un surcoût lié à la performance? Veuillez suggérer – Rohit

+0

Pourriez-vous expliquer votre réponse et pourquoi pensez-vous que cela vaut mieux que de ramener soit ceux qui correspondent à un CustomerId spécifique, soit ceux dans lesquels CustomerId est NULL? –

+1

D'accord avec la suggestion de Preet. S'il s'agit d'un nombre qui n'a pas de client associé, il doit figurer dans une table sans identifiant client. Pourquoi utiliseriez-vous un null pour cela? – sqlvogel

Questions connexes