Шаблон TPH в ядре ef для общей таблицы между различными сущностями

#.net #asp.net-core #entity-framework-core #ef-code-first #tph

Вопрос:

у меня есть вопрос. пожалуйста,предположим,что у нас есть разные объекты, такие как категория, блог, видео… и у каждого из них есть свои комментарии. как я могу использовать одну таблицу комментариев для всех этих сущностей, используя только один FK?это шаблон TPH?как я могу реализовать это в первом подходе к коду? что-то вроде этого Комментария(commentId, …, postID, ВидеоИД) к комментариям(commentId). заранее спасибо.

Ответ №1:

Вы можете исключить FK из таблицы комментариев, используя отношения «Многие ко многим» или отдельные связывающие сущности для отношений.

Комментарии:

1. я не хочу иметь fk для каждой таблицы, потому что для fk есть несколько нулевых значений.учтите, что у нас есть 100 записей категории в таблице комментариев, остальная часть fk, например видео или блог, будет равна нулю во всех 100 записях. я просто хочу иметь один fk для всех таблиц и использовать что-то вроде дискриминатора, чтобы определить, какой комментарий для какой таблицы