sql >> Databáze >  >> RDS >> Mysql

Komentáře k problému s návrhem databáze mnoha tabulek

Můžete vytvořit další tabulku CommentableEntity (i když tomu říkej něco lepšího). Každý z řádků ve vašich tabulkách (Articles , Recipes atd.) by měl odkaz na jedinečný řádek v této tabulce. Tabulka entit může mít type pole pro označení typu entity (pro usnadnění zpětného spojování).

Poté můžete přidat Comment tabulka, která odkazuje na CommentableEntity , obecným způsobem.

Takže například skončíte s následujícími tabulkami:

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

Záznam CommentableEntity můžete přidat pokaždé, když přidáte článek/recept atd. Vše, co váš kód pro zpracování komentářů musí znát, je CommentableEntity_id – nezáleží na tom, o jaký typ věci se jedná.



  1. VB.NET:Inicializátor typu pro 'MySql.Data.MySqlClient.Replication.ReplicationManager' vyvolal výjimku

  2. Hibernate @OneToMany vyvolá výjimku MySQLSyntaxErrorException:Máte chybu v syntaxi SQL

  3. Android Sqlite Insert, pokud neexistuje

  4. Výběr největších N záznamů v X skupinách