Задать вопрос
@amazinginternetsites

Оптимальная структура БД. Как организовать правильно?

Друзья. Сейчас данные каждого пользователя записываются в базу стандартно:
id info skype adress - ну и так далее.

Сайт узкотематический, поэтому нужно чтобы каждый пользователь мог заполнить свой прайс лист. Вернее указать просто цены на предложенный заранее список
Вот тут то и вопрос. Полагаю нужно создать новую таблицу типа:
id (пользователя) item_name1 (название продукта) item_price1 (цена) item_name2 (название продукта) item_price2 (цена)

Сложность состоит в том, что элементов (item_name) более 200. Придется раздувать таблицу или можно сделать это оптимальней?

Спасибо.
  • Вопрос задан
  • 2896 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
pi314
@pi314
Президент Солнечной системы и окрестностей
Нет такого понятия, как вообще оптимальная структура данных. В данном случае можно, например, создать две доп. таблицы:
item_name (id, name);
item_user_price(id_user, id_item, price);

В первой будет "более 200" записей (которые, кстати, со временем могут удаляться / добавляться), во второй - столько, сколько цен будет вводиться пользователями (сомневаюсь, что пользователи будут рады, вводить все 200 цен за раз; а может у кого-то вообще есть не все цены).

Такая структура даст минимальную избыточность. Но будет ли она "оптимальной" по скорости и расходу памяти, зависит от конкретных запросов, которые на ней будут выполняться.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Отдельно таблица пользователей.
Отдельно таблица продуктов.
Третья таблица, объединяющая, id пользователя, id продукта, плюс цена.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы