「大きな」テーブルとパフォーマンスについて心配するのはよくある間違いです。インデックスを使用してデータにアクセスできる場合は、1000000レコードが1000あるかどうかは問題ではありません。少なくとも、測定できるほどではありません。あなたが言及するデザインは一般的に使用されています。これは、時間がビジネスロジックの重要な部分である優れた設計です。
たとえば、クライアントが注文した時点での商品の価格を知りたい場合は、valid_from
これは常に当てはまるわけではありません。アーカイブ目的でのみデータを保持している場合は、アーカイブテーブルを作成する方が理にかなっている場合があります。ただし、時間が本当にであることを確認する必要があります ビジネスロジックの一部ではありません。そうしないと、複数のテーブルを検索する際の苦痛が大きくなります。注文した時点での製品の価格を確認するたびに、productテーブルまたはproduct_archiveテーブルのいずれかを検索する必要があることを想像してください。 。