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

Как правильно расположить данные в базе данных mysql?

Здравствуйте,

Есть некоторые данные - связка {id, price}. У каждого товара может быть десяток таких связок а может и не быть. На данный момент я создал 20 полей и большинство из них полупустые. Может есть смысл положить данные в одну ячейку. Читал про сериализацию, но выгодно ли ее использовать при добавлении в секунду более 200 записей?
  • Вопрос задан
  • 231 просмотр
Подписаться 4 Оценить Комментировать
Решения вопроса 2
@djay
Почитай про нормализацию данных. В текущей задаче - это One-to-Many Relationships
Сериализация в данном случае не верный подход, потому что:

1. Сводит возможность поиска практически к нулю.
2. Ухудшает производеленость, поскольку если понадобится хотя бы одна запись (цена например), то тогда придется парсить весь сериализованный текст.

А так в целом, если у одного товара может быть несколько цен (теоритически - да хоть тысяча цен - не важно), то всё это должно хранится в отдельной таблице. И выбиратся джоином как One-to-Many Relationship.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@skvot
Если я Вас правильно понял, то у вас обычная связь многие-ко-многим?

product
--------
id | name

price
------
id | value

product_to_price
-------------------------
product_id | price_id


Хотя я бы просто сделал таблицу цен

price
---------------
id | product_id | value
Ответ написан
Ваш ответ на вопрос

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

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