Dans mon application, j'ai une entité, table, appelée actions
avec des propriétés variées. Pour clarifier le cas, ce qui suit est la table Structure actions
:Normalisation de base de données d'une entité avec des propriétés variées
-
id
- ,
- status_id (non nulle),
- SECTION_ID (non nulle),
- job_id (non nulle)
- equipment_id (null),
- cause_id (null),
- solution_id (null),
- created_at,
- closed_at,
- ACTION_TYPE (non null) char (3)
Si tous les champs suffixés avec _id
sont les clés étrangères et la action_type
est très liste limitée et définie des types d'actions, donc je l'ai défini dans un fichier de configuration, c'est-à-dire qu'il n'y a pas d'entité de base de données pour action_type
.
Ma question est plus générale que celle-ci: Can a foreign key be NULL and/or duplicate? où je pose des questions sur le principe de normalisation.
Dans mon cas, certains types d'action n'a pas besoin, par exemple, pour equipment_id
, où d'autres ont besoin equipment_id
mais pas besoin à la fois cause_id
et solution_id
, etc
Dans ma conception de base de données, la table actions
ressemble à beaucoup à Beaucoup de tables de conjugaison.
La conception ci-dessus permet, facilement, d'obtenir de nombreuses données statistiques sur les sections et les travaux sans avoir besoin d'effectuer des requêtes de jointure complexes.
Ma question est: Est-ce que ma normalisation et ma conception sont correctes?
Que voulez-vous dire par "normalisation"? Ce mot est utilisé pour signifier beaucoup de choses différentes. Au lieu de ce mot, veuillez expliquer ce que vous essayez d'accomplir et pourquoi. Et si vous faites référence à un usage particulier, veuillez donner une référence. De plus, veuillez reformuler la phrase "certains types d'actions n'ont pas besoin, par exemple, pour equipment_id, où d'autres ont besoin de equipment_id mais pas de cause_id et de solution_id, etc". – philipxy
@philipxy bien cela fonctionne comme la table de journal des actions. Ce journal va enregistrer certaines données sur les actions, y compris, son type, l'équipement utilisé, le défaut, la cause, la solution si l'un d'eux s'applique. – SaidbakR
Vous n'avez pas répondu à ma question.Par "expliquer ce que vous essayez d'atteindre et pourquoi", je voulais dire, en utilisant la "normalisation". – philipxy