Я создаю систему комментариев в PostgreSQL, где я могу комментировать (а также «ставить лайки») по различным объектам, которые у меня уже есть (например, продукты, статьи, фотографии и т. Д.). На данный момент я придумал это:
(примечание: внешний ключ между comment_board и product / article / photo здесь очень свободный. ref_id просто хранит идентификатор, который используется вместе с comment_board_type, чтобы определить, какая это таблица )
Очевидно, это не похоже на хорошую целостность данных. Что я могу сделать, чтобы сделать его более целостным? Кроме того, я знаю, что для каждого продукта / статьи / фотографии потребуется доска комментариев. Может ли это означать, что я использую comment_board_id для каждого продукта / статьи / фото, например этого ?:
Я знаю это решение SO, но оно заставило меня задуматься над супертипами и их сложностями: Дизайн базы данных - статьи, сообщения в блогах, фотографии, рассказы
Любое руководство приветствуется!
Entity (entity_id PK, created_at, updated_at)
,product (id, created_at, updated_at, entity_id)
иcomment(id PK, entity_id REFERENCES entity(entity_id), ...)
. Единственное, что я не знаю, это наследовать другие таблицы постфактум. - person Handonam   schedule 28.02.2016