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

MySQL автоматично увеличение между таблиците

Изглежда, че искате да разграничите категориите и темите в две отделни таблици, но идентификаторите и на двете да бъдат посочени в друга таблица likes за улесняване на потребителите да харесват категория или тема.

Това, което можете да направите, е да създадете таблица на супер-обект с подтипове categories и topics . Автоматично увеличеният ключ ще бъде генериран в таблицата на свръхобекти и ще бъде вмъкнат само в една от двете таблици на подтип (въз основа на това дали е категория или тема).

Таблиците с подтипове препращат към този супер-обект чрез автоматично увеличеното поле във връзка 1:1.

По този начин можете просто да свържете таблицата със супер-обекти с likes таблица само въз основа на една колона (която може да представлява или категория, или тема) и без id в таблиците на подтиповете ще присъства и в двете.

Ето опростен пример за това как можете да моделирате това:

Този модел би ви позволил да поддържате връзката между категории и теми, но и двете обекти, обобщени в superentity таблица.

Друго предимство на този модел е, че можете да абстрахирате общи полета в таблиците на подтиповете в таблицата със свръхсъщност. Кажете например, че categories и topics и двете съдържаха полетата title и url :можете да поставите тези полета в superentity таблица, тъй като те са общи атрибути на нейните подтипове. Поставяйте само полета, които са специфични за таблиците на подтиповете В таблиците на подтиповете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. python - Проблем със съхраняването на Unicode символ в MySQL с Django

  2. Ключовата дума MySQL DELIMITER не работи

  3. запишете var_dump в текстов файл

  4. Предотвратете mysql привеждане на низ към int в клауза where

  5. MySQL COUNT() в множество колони