1

Вот схема базы данных, которую я только что составил.Теги схемы схемы базы данных SQL

my schema

  • Пиво принадлежит к одной категории.
  • Категория состоит из нескольких тегов.
  • Пиво помечено несколькими тегами.
  • Тег можно использовать с несколькими пивками (многие для многих).

Ограничение: Вы не можете добавить метки к пиву, которое не относится к категории, к которой относятся те теги.

Является ли эта конструкция правильной в отношении ограничения? Это что-то, что я должен использовать в своем коде?

ответ

1

Учитывая ваши ограничения, да, эта конструкция правильная.

Эта конструкция также требует, чтобы каждый тег мог принадлежать только к одной категории. Между категорией и тегом нет многого для многих.

Вы не можете добавить метки к пиву, которое не относится к категории, к которой относятся те теги.

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

Учитывая то, как смутное представление о user, tag и category в вашем кратком описании, нет никаких дальнейших рекомендаций, которые будут даны или дальнейшие мысли, чтобы рассмотреть, как мы не можем понять проблемы бизнеса/контекст.

+0

Спасибо за ваш повтор. Как вы сказали, схема базы данных не мешает пиву присваиваться тегам категорий, которым не присвоено это пиво. Это и послужило причиной этого поста. Я думал, что эта часть должна быть обработана на уровне базы данных и не могла понять, как это сделать. –