sql >> データベース >  >> RDS >> Mysql

同じ列を持つ2つのテーブル、または追加の列を持つ1つのテーブル?

    制約によって異なります:

    • applesに外部キーまたはチェックがありますか orangesには存在しません (またはその逆)?
    • 両方のテーブルでキーを一意に保つ必要がありますか(したがって、appleはありません) 一部のorangeと同じIDを持つことができます )?

    これら2つの質問に対する答えが次の場合:「はい」 および「いいえ」 、テーブルを分離してください(制約をテーブル固有にすることができます)。

    答えが次の場合:「いいえ」 および「はい」 、それらをマージします(両方にまたがるキーを作成できるようにします)。

    答えが次の場合:「はい」 および「はい」 、継承のエミュレートを検討してください:

    ルックアップデータ は似たようなテーブルの典型的な例ですが、FKを別々に保つことができるように別々に保つ必要があります。

    具体的には、これは継承を表すための「個別のテーブル内のすべてのクラス」戦略です(別名、カテゴリ、サブクラス化、サブタイピング、一般化階層など)。 この投稿 をご覧ください。 詳細については



    1. Railsアプリを既存のMySQLDBに「接続」しますか?

    2. IRIWorkbenchでの新しいテーブルの作成

    3. ルームライブラリはアセットフォルダからデータベースをコピーできますか?

    4. Oracle 11gでユーザーを作成し、権限を付与する方法