Я заинтересован в разработке базы данных (ну, на самом деле, меня интересует только одна таблица) для сайта со следующими требованиями:
- Существует страница
items
, в которой перечисленыПредметы.items.xyz?id=t
отображает элемент с идентификатором t
.Мне нужно, чтобы идентификаторы предметов были последовательными.Первый элемент имеет идентификатор 1, второй идентификатор 2 и так далее.Каждая страница элемента имеет комментарии к этому элементу. - Существуют и другие страницы, например
objects
, где objects.xyz?id=t
отображает объект с идентификатором t
.Идентификаторы здесь не обязательно должны быть последовательными (и они могут перекрываться с идентификаторами предметов, но это нормально, если вы предлагаете что-то, что заставляет их не перекрываться).У них также есть комментарии.
Мой вопрос: как спроектировать таблицу Comments
?Если у меня есть EntityID
, представляющий страницу, на которой должен отображаться комментарий (будь то страница элемента или страница объекта), то я должен сделать так, чтобы ItemID
никогда не перекрывал ObjectID
, делаявсе ObjectID начинаются, скажем, с 10 9 и с использованием таблицы GUID?(ItemIDs увеличиваются очень медленно).Является ли это приемлемой практикой?
Прямо сейчас я делаю это, имея в каждом комментарии по несколько булевых полей: IsItem
, IsObjectType1
, IsObjectType2
, ..., что позволяет мнезнать, где каждый комментарий должен отображаться.Это не так уж плохо, так как у меня есть только несколько объектов, но это похоже на уродливый хак.
Как лучше всего это сделать?