Mysql
 sql >> Base de données >  >> RDS >> Mysql

conception de base de données, faire une table pour pointer plusieurs et une sorte de pointeurs récursifs

Il s'agit d'un schéma de base de données potentiellement volumineux, je vais donc me concentrer uniquement sur le système musculo-squelettique. Avant d'entrer dans les détails, je dois mentionner l'importance de la normalisation de la base de données. C'est important! Et pour de nombreuses raisons. Principalement, en concevant une bonne base de données normalisée maintenant, vous vous évitez des problèmes tout en garantissant l'intégrité et la fiabilité de vos données. Gardez toujours à l'esprit "Comment cette base de données va-t-elle grandir", "Et si j'ai besoin d'ajouter plus de systèmes ou de vues ou de modèles de distribution", etc. un bref aperçu peut être lu ici :http://databases.about.com/ od/specificproducts/a/normalization.htm

Au design de la base de données :

Vous souhaitez conserver les colonnes redondantes et les colonnes qui sont des sous-ensembles d'autres colonnes hors d'une table et dans la sienne. Par exemple, regardez votre tableau des ganglions lymphatiques. Que se passe-t-il si dans un an vous vous rendez compte que vous devez ajouter un autre ganglion lymphatique ? Ou en supprimer un ? Ou que se passe-t-il si vous ne regardez qu'un seul nœud d'un client ? Au lieu de le faire à votre façon, attachez la table à un objet plus grand (je ne suis pas médecin, donc je ne sais pas quelle est la réponse) comme Patient ou Lymph Systems. Ou les deux. Exemple :

Un patient a de nombreux systèmes (relation un à plusieurs entre le tableau des patients et le tableau des systèmes) Un système lymphatique a de nombreux organes (relation un à plusieurs entre le système lymphatique et les organes) Un système, ou un organe, a de nombreux tests (une relation un à plusieurs entre les systèmes et les tests).

Exemple :

Ce tableau ne doit contenir que des données relatives à un patient individuel

Ce tableau ne doit contenir que des colonnes spécifiques à tous les systèmes. Les systèmes peuvent être des systèmes lymphatiques, des systèmes respiratoires, des systèmes excréteurs, etc.

TablePatient_TableSystems

Vous ne pouvez pas avoir de nombreuses relations. Ce tableau résout cela. Si vous ne l'aviez pas, vous auriez besoin de conserver des enregistrements redondants dans chaque table pour chaque patient/système

Résout le plusieurs à plusieurs pour les systèmes et les organes

Place maintenant aux tests. Les tests sont-ils spécifiques aux organes ou aux systèmes ? Ou les deux? Cet exemple dira les deux

TableTest

Il y a beaucoup de choses ici, donc je pense que c'est un bon endroit pour s'arrêter. Lisez la normalisation des données et lorsque vous avez des questions, postez ici (ou envoyez-moi un message).