2010-02-19 5 views
0

J'ai une table appelée enterprise dans ma base de données. Si l'entreprise exprime sa demande à mon entreprise, l'entreprise deviendra notre prospection. Et après, si l'entreprise accepte la proposition de mon entreprise, nous signerons le contrat et l'entreprise deviendra client.Conception de table Mysql: rôles de table

Maintenant, j'ai créé 3 tables qui sont l'entreprise, la prospection, le client.

Alors, comment dois-je concevoir la base de données?

Répondre

2

Une approche serait d'avoir une table Companies, et les trois tables que vous avez déjà. Les trois tables ont un champ CompanyId qui a une structure de clé étrangère qui le lie à la table des sociétés. Cette conception a l'avantage que vous devez garder l'information de l'entreprise dans un endroit et il n'y a pas de duplication. Une autre solution serait d'avoir un champ dans la table companies, qui le marque en tant qu'entreprise, prospect ou client.

La conception que vous devez choisir dépend en grande partie des informations pour les différentes classes. Si vous pensez à l'héritage (c'est-à-dire qu'un client est un prospect est une entreprise), le tableau de l'entreprise suffit. Cependant, s'il existe une grande quantité d'informations et que l'information est différente pour chacune des trois classes, la première approche serait préférable.

Cependant, vous devez toujours essayer de conserver les informations à un endroit, c'est-à-dire dans un champ/table (= entièrement normalisé). Dans certains cas, vous pouvez déroger à ce principe pour des raisons de performances, mais gardez à l'esprit que cela implique également une charge de maintenance plus importante - vous devez mettre à jour n tables lorsqu'une valeur est modifiée.

+0

Je suis d'accord avec cela. Il me semble qu'une table est la réponse avec des drapeaux indiquant dans quel état la compagnie est représentée. L'entité est ici company. entreprise, prospection, client sont des états. –

+0

@thanks obalix, vos suggestions sont très bonnes. Et j'ai une autre question, comment changer son statut (entreprise, prospection, client) automatiquement selon le processus de l'entreprise. –