0

私は2つのテーブルを持っています:

"sites" has_many "users" 
"users" belongs_to "sites"

ユーザーサイトに追加されるたびに、sitesテーブルにusers_countという列を追加し、それを1つ増やしたほうがよいでしょうか。または、ユーザーテーブルの条件付きカウントを行うのが最善の方法ですか?

4

1 に答える 1

2

「より良い」は主観的な用語です。

しかし、私はこれについて固執します。単にステップから外れる可能性があるという理由だけで、データベースに同じ情報の2つのソースがあってはなりません。

サイトに所属しているユーザーの数を確認する最も確実な方法は、ユーザーcountを数えるために使用することです。

第3正規形では、すべての非キー属性がキー、キー全体、およびキー以外の何物にも依存しない必要があります(Codd、助けてください)。

キー値だけに依存するのではなくsites、他のテーブルの情報にも依存するユーザー数をサイトに追加する場合。

影響を理解し、データの不整合(トリガーなど)の可能性を軽減する場合は、パフォーマンスの第3正規形から戻すことができますが、ほとんどの場合は3NFのままにする必要があります。

于 2012-04-05T05:01:04.117 に答える