製品と従業員のテーブルを持つデータベースについて考えてみます。現在の製品マネージャーをモデル化するための新しい要件があり、製品を担当する唯一の従業員であり、一部の製品は製品マネージャーを必要としないほど単純または成熟していることに注意してください。つまり、各製品には0個または1個の製品マネージャーを含めることができます。
アプローチ1:テーブルを変更して、新しい可能な列Product
を追加し、製品マネージャーのない製品が値によってモデル化されるようにします。NULL
product_manager_employee_ID
NULL
アプローチ2:不可能な列と、に一意の制約を設定した新しいテーブルを作成しProductManagers
ます。これにより、製品マネージャーのない製品は、このテーブルに行がないことでモデル化されます。NULL
product_ID
employee_ID
product_ID
他のアプローチもありますが、これらは私が最も頻繁に遭遇するように思われる2つです。
これらが両方とも(私が信じる傾向があるように)正当なデザインの選択であり、単に異なるスタイルを表すと仮定すると、それらには名前がありますか?私はアプローチ2を好み、実際の例を使用せずにアプローチ1を好む人にスタイルの違いを伝えるのは難しいと思います(ここで行ったように!)傾向-方向-6NF(または何でも)自分自身をスタイルします。」
これらのアプローチの1つが実際にアンチパターンであると仮定すると(2つのエンティティ間の関係をそれらのエンティティの1つの属性としてモデル化することにより、アプローチ1の場合であると私は思うので)、このアンチパターンには名前がありますか?