Premièrement, je pense que c'est une question de modélisation et de définition de ce qui consiste en une entité distincte. Supposons que vous ayez customers
un seul et unique address
. Bien sûr, vous pouvez tout mettre en œuvre dans une seule table customer
, mais si, à l'avenir, vous lui permettez d'avoir 2 adresses ou plus, vous devrez alors refactoriser cela (pas de problème, mais prendre une décision consciente).
Je peux également penser à un cas intéressant non mentionné dans d'autres réponses où le fractionnement du tableau pourrait être utile:
Imaginez, encore une fois, que vous en ayez customers
avec un seul address
chacun, mais cette fois, il est facultatif d'avoir une adresse. Bien sûr, vous pouvez l'implémenter sous forme de NULL
colonnes -able telles que ZIP,state,street
. Mais supposons que, étant donné que vous avez une adresse, l'état n'est pas facultatif, mais le ZIP l'est. Comment modéliser cela dans un seul tableau? Vous pouvez utiliser une contrainte sur la customer
table, mais il est beaucoup plus facile de la diviser dans une autre table et de rendre la clé étrangère NULLable. De cette façon, votre modèle est beaucoup plus explicite en disant que l' entité address
est facultative et que le ZIP
est un attribut facultatif de cette entité.