Mysql
 sql >> база данни >  >> RDS >> Mysql

Коментари относно проблем с дизайна на базата данни с много таблици

Можете да създадете друга таблица CommentableEntity (въпреки че го наречете по-добре). Всеки от редовете във вашите таблици (Articles , Recipes и т.н.) ще има препратка към уникален ред в тази таблица. Таблицата на обекта може да има 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. c++ mysql връзка bad_alloc с помощта на c++ конектор

  2. вмъкване на стойности от множество избрани отметки в базата данни

  3. SQL:Подреждане по колона, след това по подниз смесване на възходящ и низходящ

  4. Използваният тип таблица не поддържа индекси FULLTEXT

  5. Основи на външните ключове в MySQL?