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

Една маса срещу няколко маси

Може да има реални причини да искате/нуждате се от една таблица с коментари. Например, това би улеснило прегледа на всички коментари от даден потребител. Също така, търсенията във всички коментари биха били по-прости (поставете един индекс на FTS на една таблица и сте готови).

От друга страна, ако няма убедителна причина коментарите да се съхраняват в една таблица, има възможно трето (и доста очевидно) решение.

Създайте отделна таблица с коментари за всеки елемент (публикация, събитие, файл, документ). В тази ситуация връзките на RI биха били много лесни за дефиниране и описание. Освен това, ако пишете ad hoc заявки много често, това може да го направи по-лесно. Например

 select * from documents d left join doc_comments c 
                           on d.id = c.docid 
                           where d.id=42;

Нищо от това може да не е уместно или важно за вашата ситуация, но може да си струва да обмислите.

Една допълнителна произволна мисъл:И двете решения в ОП имат „усещането“, че дефинират връзка много към много (например коментар може да принадлежи на множество елементи). Ако приемем, че това не е желаната ситуация, тя може да бъде предотвратена с подходящия уникален индекс, ... но все пак ... има онзи първоначален вид, който изглежда сякаш може да доведе до възможно объркване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. имплементирайте LIKE заявка в PDO

  2. Включително стойности НЕ НАМЕРЕНИ в резултатите от MySQL заявка

  3. Идентификатор на ресурс #4 PHP MYSQL

  4. Проблем със заявка за хибернация с Informix

  5. Текстово поле за автоматично попълване в зависимост от стойността на падащото меню