Поскольку это отношение «многие ко многим», вы, возможно, захотите взглянуть на использование ассоциативной таблицы.
Используя ваш пример, это может выглядеть примерно так:
Ваши таблицы, которые могут иметь комментариев:
+----------+------------+
| student | student_id |
+----------+------------+
| Steve | 12 |
| Larry | 57 |
| Sunshine | 88 |
+----------+------------+
+--------+---------+
| dept | dept_id |
+--------+---------+
| Math | 2 |
| P.E. | 5 |
| Drama | 12 |
+--------+---------+
Тогда вам нужно отслеживать реальные комментарии:
+-----------------------+------------+
| comment | comment_id |
+-----------------------+------------+
| I love Math! | 3 |
| Larry is my hero... | 5 |
| Sunshine <3 Me! | 6 |
+-----------------------+------------+
Теперь вам нужна связь между этими столами, вот где ваша ассоциативная таблица вступает в игру. Теперь вы связываете, какой студент или кафедра имеет какие комментарии, например:
+------------+------------+
| student_id | comment_id |
+------------+------------+
| 57 | 5 |
| 57 | 6 |
+------------+------------+
+---------+------------+
| dept_id | comment_id |
+---------+------------+
| 2 | 3 |
+---------+------------+
Это одновременно эффектно и элегантно. Дайте ему шанс!
(И, чтобы спасти вас, возможно, еще один вопрос)
Вы, конечно, могли бы использовать только одну таблицу ассоциации, если вас беспокоит наличие такого большого количества таблиц ассоциации, но я бы посоветовал не использовать ее, поскольку она не столь удобна и исключает некоторые возможности для проверки ссылочной целостности, которые вы можете иметь с первой решение:
+-----------+------------+---------+
| entity_id | comment_id | entity |
+-----------+------------+---------+
| 57 | 5 | student |
| 57 | 6 | student |
| 2 | 3 | dept |
+-----------+------------+---------+
(что, в свою очередь, должно подтолкнуть вас к добавлению таблицы поиска для этих объектов ... но давайте не будем идти туда)