Должен ли я сделать таблицу спецификаций доступной для ссылок?

StackOverflow https://stackoverflow.com/questions/1658219

Вопрос

Поскольку я знаю, что здесь много опытных разработчиков ядра базы данных, я решил задать этот вопрос в stackoverflow.

Я разрабатываю веб-сайт, главной задачей которого является индексирование каждого продукта, доступного в реальном мире, такого как цифровые фотоаппараты, принтеры, холодильники и так далее.Как мы знаем, каждый продукт имеет свои собственные спецификации.Например, цифровой фотоаппарат имеет свой вес, объектив, скорость затвора и т.д.Каждая спецификация имеет свой тип.Например, цена (я вижу это как спецификацию) - это число.

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

Итак, вот мой вопрос, возможно ли создать таблицу для спецификаций со всеми спецификациями в ней, чтобы, например, ЦЕНА с типом номера была создана ранее, и просто нужно найти цену в таблице и присвоить ее продукту.Проблема с этим методом заключается в том, что я не вижу хорошего способа запретить пользователю создавать повторяющиеся записи.Он должен быть в состоянии найти нужную ему спецификацию (если она была добавлена ранее), и я также хочу, чтобы он знал, что найденная им спецификация на самом деле именно та, которая ему нужна, поскольку могут быть некоторые спецификации с одинаковым именем, но разного типа и использования.Если он этого не найдет, он это создаст.

Есть какие-нибудь идеи?

---------------------------- ОБНОВЛЕНИЕ ----------------------------

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

Это было полезно?

Решение

Моя предлагаемая модель данных основана на ваших требованиях:

SPECIFICATIONS таблица

  • SPECIFICATION_ID, пк
  • SPECIFICATION_DESCRIPTION

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

ITEM_SPECIFICATION_XREF таблица

  • ITEM_ID, pk, fk к ITEMS таблица
  • SPECIFICATION_ID, pk, fk к SPECIFICATIONS таблица
  • VALUE, пк

Преимущества:

  1. Создание составного первичного ключа гарантирует, что набор значений будет уникальным во всей таблице.Благословение или проклятие, предмет с заданной спецификацией может иметь значения 0.99 и 1.00 - они были бы допустимы.
  2. Эта настройка позволяет связать спецификацию с элементами 0+.

Другие советы

Я только что закончил отвечать Генерация динамической таблицы в котором обсуждается аналогичная проблема.Взгляните на схема наблюдения.Если вы замените "наблюдение" на "спецификацию" и "предмет" на "продукт", вы можете найти эта модель полезно - вам не понадобятся таблицы Report и Rep_mm_Obs.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top