私は次の設定をしています:
たとえば、ピザの詳細を含むn列のテーブル。この時点で 4 種類のピザがあります。これまでは、すべてのピザの詳細が同じで、各詳細が列に保存されていました。
しかし、スーパーピザと呼ばれる新しい種類のピザが登場し、さらに 2 種類の詳細を保存する必要があります。
これを行うには2つの方法があります(私が考えることができます):
既存のテーブルに列を追加し、残りの 4 種類のピザについては空白/null/その他のままにします
3 つの列 (idPizza、newDetail1、newDetail2) を持つ新しいテーブルを作成し、ピザを残りのピザとして保存し、データを取得したら 2 つのテーブルを結合します。
最初のオプションには、新しいタイプ (平均的なピザの分布でテーブルの 80%) を除くすべてのピザの役に立たないデータを保持するという欠点があります。
2 番目のオプションには、新しい種類のピザを入手するたびに参加する必要があるという欠点があります。また、データベースは一種の「乱雑」になります...ピザ要素の一部がテーブルに格納され、他の部分が別のテーブルに格納されます。
最終的には好みの問題であることは承知していますが、どのように進めるべきだと思いますか? 私は最初のオプションに少し傾いていますが、セカンドオピニオンを歓迎します。
注: テーブルには多数のエントリがあります (数万のように)。
2番目のメモ(回答に基づく):「ピザ」テーブルをリファクタリングすることはできません。追加するだけです。