Я рассматриваю, как структурировать мою базу данных MySQL в решении для электронной коммерции. Чтобы быть более конкретным, я рассматриваю структуру продукта.Структура электронной коммерции для продуктов (MySQL)
Это те таблицы, которые я придумал до сих пор. Как вы думаете?
Объяснение структуры
Заявка многоязычен. Поэтому таблица продуктов разделяется на две таблицы.
Если продукция имеет, например, 2 варианта (Small, Medium) будут вставлены в общей сложности 3 строки. Это связано с тем, что каждый вариант может иметь различную информацию для каждого варианта. Когда продукт отображается на веб-странице, продукт 1 будет показан с раскрывающимся ящиком с малым & Medium. Продукт без вариантов, естественно, будет вставлять только 1 строку.
products
id master product_number
1 0 123
2 1 456
3 1 678
products_descriptions id product_id country_code image name description vat price 1 1 en-us image.jpg t-shirt Nice t-shirt 25 19.99 2 2 en-us image.jpg t-shirt Nice t-shirt 25 19.99 3 3 en-us image.jpg t-shirt Nice t-shirt 25 19.99
products_to_options product_id option_id 2 1 3 2
options id name 1 Small 2 Medium
Интересный пример. Но что вы будете делать, если количество опций неизвестно? Как «Безжалостный»? Должны ли вы нормализовать это? – Cudos
Я постараюсь, чтобы база данных нормализовалась как можно дольше. В вашем случае я попытаюсь отсортировать варианты на два ведра: (1) те, которые являются структурными, в том смысле, что они могут оказаться в таких запросах, как «в этом году, сколько клиентов предпочитают красный, если красный, белый и синий предлагаемые "и (2) те, которые напоминают описание текста больше, чем категории. В идеале, ведро (2) будет пустым, но в реальной жизни я могу быть больше, чем (1). Но в основном, если что-то часто появляется в запросах, я хочу, чтобы оно нормализовалось. Если он используется только в описаниях, то помещать его в таблицу EAV в порядке. – wallenborn