私は次のデザインのデータベースを使用しています。データベース設計に閉ループを設定するのは良い習慣ではないことを読みました。複数のループがあります。しかし、その理由は思い出せません。だから、これが私にどのように影響するかわからない。これがどのように危険である可能性があるかの例はありますか?
編集:私の電子ブックを調べて、私が読んでいたのは、初心者から専門家までのデータベース設計の開始、出版社:APRESSであることがわかりました。
彼らはこれに対して警告するだけですが、漠然とした理由を示しています。いいえ、トリガーは使用していません。誰かがより明確な説明を持っていますか?
ありがとう抜粋、p.109:
小さな会社には、さまざまな小さなプロジェクトグループの1つで働く従業員がいます。各グループとそのすべての従業員は1つの特定の部屋に収容され、大きな部屋には複数のグループが収容されます。各従業員の所在地、特定の従業員の電話番号、特定のグループの場所、各グループで働く従業員などの情報が必要になる場合があります。 、各部屋にいる人など。考えられるデータモデルの1つを図5-7に示します。この特定の問題について、データモデルと、部屋のグループ数などに関するデータモデルに含まれる情報を理解してください。モデルには冗長な情報があります。あなたはそれが何であるかを見ることができますか?
例5-3に関して、従業員の電話番号を定期的に検索したい場合は、図5-7の従業員と部屋の最上位の関係が有用な直接ルートであると考えるかもしれません。ただし、これと同じ情報は、グループを介した代替ルートで非常に簡単に入手できます。従業員の(1つだけの)グループを見つけてから、そのグループの(1つだけの)部屋を見つけることができます。これは非常に簡単な検索です(例5-2の小さなホステルを悩ませた日付の複雑さをすべて含んでいるわけではありません)。ただし、余分な関係は不要なだけでなく、危険です。同じ情報に対して2つのルートがあるため、データが非常に注意深く維持されていない限り、2つの異なる回答が得られるリスクがあります。従業員がグループを変更したり、グループが部屋を移動したりするたびに、更新する2つのリレーションシップインスタンスがあります。非常に注意深い更新手順がないと、ジムがグループA(ルーム12)にいることになり、他のルートではジムがルーム15に直接関連付けられている可能性があります。冗長な情報は矛盾する傾向があるため、常に削除する必要があります。