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

テーブル間のMySQL自動インクリメント

    カテゴリとトピックを2つの別々のテーブルで区別したいようですが、両方のIDを別のテーブルで参照するようにしますlikes カテゴリまたはトピックのいずれかを好むユーザーを容易にするため。

    できることは、サブタイプcategoriesを持つスーパーエンティティテーブルを作成することです およびtopics 。自動インクリメントされたキーは、スーパーエンティティテーブルで生成され、2つのサブタイプテーブルの1つにのみ挿入されます(カテゴリかトピックかに基づいて)。

    サブタイプテーブルは、1:1の関係で自動インクリメントされたフィールドを介してこのスーパーエンティティを参照します。

    このようにして、スーパーエンティティテーブルをlikesにリンクするだけです。 1つの列(カテゴリまたはトピックのいずれかを表すことができます)のみに基づくテーブルで、idはありません サブタイプテーブルのは両方に存在します。

    これをモデル化する方法の簡単な例を次に示します。

    このモデルを使用すると、カテゴリとトピック間の関係を維持できますが、両方のエンティティをsuperentityで一般化できます。 テーブル。

    このモデルのもう1つの利点は、サブタイプテーブルの共通フィールドをスーパーエンティティテーブルに抽象化できることです。たとえば、categories およびtopics 両方にtitleフィールドが含まれていました およびurl :これらのフィールドをsuperentityに入れることができます それらはそのサブタイプの共通の属性であるため、テーブル。サブタイプテーブルに固有のフィールドのみをサブタイプテーブルに配置します。



    1. テーブルから重複する行を削除する

    2. PHPを使用してリモートデータベースに接続できません

    3. Pythonを使用したMySQLへの高速(一括)挿入

    4. 個別のレコードに対するPIVOTクエリ