Две проблемы в этом подходе:
a) Ограничение внешнего ключа.Нет простого способа указать
, если значение comment_type_id равно «Article», затем проверить, существует ли этот родительский_id в таблице Article, если comment_type_id - «Blog», то проверить, существует ли этот parent_id в таблице Blog ---on ..
Большинство мест, которые я видел, игнорируют ограничение внешнего ключа и выполняют проверку на прикладном уровне (java, .net ... что угодно) при добавлении комментария.Это создает дополнительные сложности, такие как одновременные пользователи, транзакции и блокировка.
b) Вторая проблема - когда некоторые комментарии содержат конкретные данные (относящиеся только к блогу, статье или новостям).Даже если он есть, убедитесь, что вы включили его в отдельный столбец и не имеете общих столбцов, таких как "Additional_column_1".