今ではかなり明白なパターンに気づきました。これについてあなたの意見を聞く必要があります。
リレーショナル モデルで、テーブル 1 からテーブル 2 への 1 対多の関係があるとします。たとえば、テーブル 1 はユーザー テーブルであり、テーブル 2 はすべてのユーザー ログインを記録するログイン テーブルである可能性があります。1 人のユーザーが複数回ログインできます。ユーザーを指定すると、そのユーザーによるすべてのログインを見つけることができます。
頭に浮かぶ最初のアイデアは、ログインをログイン テーブルにのみ格納することです。これがデザインワンです。
しかし、いくつかのユースケースで、ユーザーの特定のログイン (最後のログインなど) に関心がある場合は、最後のログイン時刻をユーザー テーブル自体にキャッシュするのが「一般的に良い考え」です。そうですか?
設計 2 は、結合を実行してから以前のログイン以外をすべて破棄することで、常に最後のログイン時刻を見つけることができるため、明らかに冗長です。
1 人のユーザーの場合、どちらでも問題ありません。しかし、すべてのユーザーの最終ログイン時刻を SQL クエリで調べたい場合、デザイン 1 では結合とサブクエリを使用して、不要な結果を除外します。
しかし、私たちのユースケースを考えると、最後にログインした時刻を user テーブル自体に保存することをお勧めします。これにより、結合を回避できます。そうですか?
これは、スキーマの設計時に見られる一般的なパターンですか?