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

多くのテーブルデータベース設計の問題に関するコメント

    別のテーブルCommentableEntityを作成できます (それをもっと良いものと呼んでいますが)。テーブルの各行(ArticlesRecipes など)は、このテーブルの一意の行への参照を持ちます。エンティティテーブルにはtypeが含まれる場合があります エンティティのタイプを示すフィールド(逆結合を支援するため)。

    その後、Commentを作成できます CommentableEntityを参照するテーブル 、一般的な方法で。

    したがって、たとえば、次のテーブルになります。

    Articles
    -----------------
    Article_id
    CommentableEntity_id (fk, unique)
    Content
    ....
    
    Recipes
    -----------------
    Recipe_id
    CommentableEntity_id (fk, unique)
    Content
    ....
    
    CommentableEntity
    -----------------
    CommentableEntity_id (pk)
    EntityType (e.g. 'Recipe', 'Article')
    
    Comment
    -------
    Comment_id (pk)
    CommentableEntity_id (fk)
    User_id (fk)
    DateAdded
    Comment 
    ...etc...
    

    記事/レシピなどを追加するたびに、CommentableEntityレコードを追加できます。コメント処理コードが知っている必要があるのはCommentableEntity_idだけで、それがどのような種類のものであるかは関係ありません。



    1. JavaFXで非同期データベースを作成するにはどうすればよいですか

    2. PostgreSQLで過去nか月ごとの新しいレコードを検索する

    3. 設計データベースへの先史時代および現代のアプローチ

    4. RailsでActiveRecordを使用して、データベースからn行ごとに返します