@amazinginternetsites

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы