Таблица комментариев с несколькими типами родителей - PullRequest
1 голос
/ 29 марта 2009

Мой сайт (ASP.NET/C#/MS-SQL 2005) имеет несколько разделов для комментариев (профили пользователей, страницы с изображениями, видео и т. Д.) Я хочу хранить все в одной таблице комментариев.

Моя проблема связывает комментарий с его родителем. Первичные ключи профилей пользователей являются уникальными идентификаторами, а изображения и видео используют целые числа. Я хотел бы иметь отношение внешнего ключа от комментария к его родителю.

Что будет считаться лучшей практикой для этого?

Ответы [ 2 ]

1 голос
/ 29 марта 2009

Я бы использовал таблицы соединений, по одной для каждого раздела, где можно оставлять комментарии. Тогда вы будете использовать любой ключ, который вы хотите для таблицы комментариев, и вашей таблице соединения просто понадобится идентификатор из таблицы разделов и из таблицы комментариев.

  user_profiles
  id uniqueidentifier
  ...

  comments
  id int
  ...

  user_profile_comments
  profile_id uniqueidentifier
  comment_id int
1 голос
/ 29 марта 2009

Здесь обсуждаются лучшие практики. Мое мнение - использовать суррогатные идентификаторы для всего. Даже используйте его для профиля пользователя, нужен он вам или нет. Тогда вам нужно иметь дело только с одним «шаблоном» для соединения связанных сущностей. Это позволяет вам автоматизировать много стандартного кода, если вы хотите. Даже если вы не автоматизируете шаблон, это будет проще для написания и менее подвержено ошибкам.

...