Продукты - схема данных - PullRequest
       16

Продукты - схема данных

0 голосов
/ 15 сентября 2010

Я разрабатываю таблицы для модуля продуктов.Одна проблема - это ингредиенты.Я хочу фильтровать продукты по ингредиентам.Таким образом, чтобы сделать это, то я предполагаю, что каждый ингредиент должен храниться в БД отдельно и также иметь идентификатор?Но давайте примем дополнение.Может иметь 50 ингредиентов.Так что, если в магазине хранится 1 миллион продуктов, а в каждом по 50 ингредиентов, как лучше всего это хранить (отношения)?Как и Витамин Е, Витамин В12 и т. Д., Я предполагаю, что каждый будет отдельным идентификатором, потому что я хочу, чтобы пользователи находили только те продукты, которые содержат витамин Е, конечно же, есть и другие файлы, такие как название бренда, название продукта, категория продукта, тип продукта и т. Д.... Кроме того, я добавляю социальные функции, чтобы вы могли найти других людей, которые используют продукт с витамином Е в нем.Это социальный сайт с пользовательским контентом.Продукты - это только часть гораздо большей системы.Родителем продукта является Бренд, который сам по себе имеет множество филиалов.И родителем этого является компания, которая снова имеет свой собственный набор филиалов.

Спасибо.

РЕДАКТИРОВАТЬ Но это вопрос -> Если я нормализую его, все еще будет множество строк на ингредиентвводится для каждого продукта.Как еще мы можем хранить огромное количество данных на элемент, кроме построчно?Как и в обычном коде, мы можем использовать массив и добавить все это, но я не уверен в БД, как вписать все это в какую-то структуру.Моя причина 50 - это только пример.Многие продукты имеют сотни, если вы действительно углубляетесь в сырые ингредиенты из используемых химических веществ.И это будет всемирный каталог продуктов, так что ожидайте миллионы продуктов.БД будет очень большой, чтобы потом добавлять сотни строк на продукт, чтобы хранить каждый ингредиент, хммм ... должен быть какой-то другой путь при использовании БД отношений?Я могу хранить текст в файлах, но мне нужна БД, потому что 1) требуется многоязыковая поддержка и 2) аналитическая фильтрация для каждого продукта и уровня ингредиента для пользователей.

1 Ответ

1 голос
/ 15 сентября 2010

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

Вы определили некоторые данные, которые хотитемодели и хранилища, но вы также должны подумать о том, как он будет запрашиваться и обновляться (включая созданные и удаленные).Вы хотите убедиться, что никакие данные не дублируются и что производительность также учитывается.Как предложил Кьенсен, читайте о нормализации базы данных.

Кроме того, я предлагаю нарисовать себе картину вашей иерархии данных (компании, бренда, продукта, ингредиента и т. Д.), Чтобы вы увидели, как каждый из них связан с другим, ER диаграммы - хороший способ сделать это.Они помогут вам определить таблицы, столбцы, типы данных и первичные / внешние ключи, которые вам понадобятся, и помогут вам сохранить все данные, с которыми вам нужно работать.

Не бойтесьразработать несколько моделей данных и обсудить их с вашей командой.

Удачи!

...