Зачем разбивать таблицу бд?

К примеру есть таблица product, в ней есть поля id, name, есть таблица product_price, в ней поля id, product_id, price.
Часто встречаю подобное проектирование и впоследствии, чтобы получить нужные данные продукта приходится по 15 join'ов писать, а это вроде немного влияет на производительность.
В гугле не забанен, но не знаю, как правильно сформулировать вопрос, поэтому если есть что почитать на эту тему - буду рад ссылкам.
  • Вопрос задан
  • 1279 просмотров
Решения вопроса 4
sim3x
@sim3x
https://ru.wikipedia.org/wiki/Нормальная_форма

Джоины давно не проблема в запросах, если есть требуемые индексы

У продукта бывают разные цены - закупка, продажа оптом, продажа в розницу, продажа в кредит, продажа группе зареганых пользователей
Хотя в случае с ценой - логичнее включить все в одну таблицу, если матрица цен не разряжена

Почитайте также про EAV
Ответ написан
Комментировать
AlexMaxTM
@AlexMaxTM
Цены имеют свойства меняться.
Как вы сохраните в одной таблице, что продукт с ID=5 сейчас стоит 100 рублей, а в мае он стоил 80 рублей, а в прошлом году 70 рублей? Для отчетности это важно, какая цена была в какой период времени.
А бывают случаи, что цена может меняться в зависимости от количества. Например. 1 шт стоит 100 рублей, но 50 шт. стоит уже 90 рублей.
Ответ написан
Комментировать
denman1985
@denman1985
SQL, Oracle Forms/Reports dbd
Ответ написан
Комментировать
Maksclub
@Maksclub
maksfedorov.ru
А еще у одного товара бывают предложения (цвет, размер) у каждого цвета или размера может быть разная цена и оптовоая цена и региональная цена -- в одну таблицу не запихнуть.

Также чтобы у товара указать свойство (например цвет и значение(красный)) нужно всего то прописать в отдлеьной таблице ID товара, ID свойства и значение свойства... и так легко добавлять само свойство ав также его для товара присвоить.

А если красный нужно поменять на бордовый -- или в одном месте или по всей таблице у всех товаров менять
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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