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

リレーショナルデータベース設計(MySQL)

    質問に答える前に...user_idをTalentsテーブルに含めるべきではないと思います...ここでの主なアイデアは、「1人のタレントには多くのユーザーがいて、1人のユーザーには複数のタレントがいる」ということです。 NxNである必要があります。中間テーブルが必要です

    参照:多対多

    動的なこと(サブタレントの追加または削除)を行う場合は、再帰的な関係を使用できます。それはそれ自体に関連するテーブルです

    TABLE TALENT
    -------------
    id  PK
    label
    parent_id PK FK (a foreign key to table Talent)
    

    参照:再帰的な関連付け

    以前にモデルを使用している場合、テーブルTalentsが複数のレベルを含むことができるTREEになっているため、クエリを実行するのは悪夢かもしれません。タレントのテーブルは2つで十分だと思います。そうすればクエリが簡単になります

    再帰的関係を使用する場合...トップレベルのタレントにはparent_idがないため、外部キーはnullを低くする必要があります...

    幸運を! :)

    編集: わかりました..モデルを作成しました..それをよりよく説明するために

    編集 2番目のモデル(クリスマスツリーの形=D)Model&TalentとActor&Talentの関係は1x1の関係であることに注意してください。これを行うには、さまざまな方法があります(コメントの同じリンク

    ユーザーに才能があるかどうかを確認するには..クエリで3つのテーブルに参加します=)これがお役に立てば幸いです



    1. IRIWorkbenchのER図

    2. MySQLのsourceコマンドを使用してWindowsに大きなファイルをインポートするにはどうすればよいですか

    3. Shift-JISとCP932を使用してSQLインジェクション攻撃を作成するにはどうすればよいですか?

    4. PostgreSQLバルクデータロードの7つのベストプラクティスのヒント