sql >> Databasteknik >  >> RDS >> Mysql

Kommentarer om många tabeller databasdesignproblem

Du kan skapa en annan tabell CommentableEntity (fast kalla det något bättre). Var och en av raderna i dina tabeller (Articles , Recipes etc.) skulle ha en referens till en unik rad i den här tabellen. Entitetstabellen kan ha en type fältet för att ange typen av enhet (för att underlätta omvänd sammanfogning).

Du kan sedan ha en Comment tabell som refererar till CommentableEntity , på ett allmänt sätt.

Så till exempel kommer du att sluta med följande tabeller:

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...

Du kan lägga till CommentableEntity-posten varje gång du lägger till en artikel/recept etc. Allt din kommentarshanteringskod behöver känna till är CommentableEntity_id - den bryr sig inte om vilken typ av sak det är.



  1. JPA eclipse två främmande nycklar @IdClass implementeringsfel

  2. Hämtar seriellt id från batchinfogade rader i postgresql

  3. Databasstrukturdesign med varierande mängder fält

  4. Problem med att öppna MDF-fil eftersom det står SQL-fel 5171? - Ett gästinlägg av Andre Williams