DB Design, позволяющий пользователю определять продукты, спецификации продуктов и позволять им самим размещать заказы - PullRequest
3 голосов
/ 23 декабря 2011

Я проектирую базу данных, потому что мне нужно разработать такую ​​CRM, где пользователи могут указать новые продукты, спецификации продуктов и цены, а затем позволить себе вставлять заказы на эти продукты, указанные на предыдущем шаге.Конечно, вставленные данные должны быть оценены в соответствии с тем, что они указаны в БД.

Я могу быть более ясным на примере: пользователь1 создает продукт "яблоко", определяет затем "цвет" и "вес"в качестве атрибута спецификации для этого продукта.Затем пользователь1 говорит, что цены на яблоки основаны на цвете и весе.Яблоко «желтое» имеет цену 1 $ / весовая единица, «красное» яблоко имеет цену 2 $ / весовая единица.

Также создается товар «автомобиль» со спецификациями «год»,"модель", "цвет", "бренд".А также здесь указаны цены комбинации.Наконец, он создает продукт "рубашки" со спецификацией "размер", но где цена является стандартной для каждого размера

Что является хорошей отправной точкой для обработки такого рода данных?Я думал о создании таблицы products (id, name, pricing_type) (тип ценообразования дает представление, является ли это фиксированной или переменной ценой в соответствии с какой-либо областью).Затем productSpecsName (id, relatedProduct FK products (id), name) и productSpecsValue (id, relatedSpecsName FK productSpecsName(id), value, conversion) (преобразование подскажет, как использовать эти данные в коде - например, преобразовать их как целое число, число с плавающей запятой или логическое значение, поскольку значение всегда является строкой).

Но этот дизайн нене дайте мне столько гибкости, сколько мне нужно, можете ли вы помочь мне получить лучший дизайн?Это такая электронная коммерция, но я хотел бы дать пользователю возможность создавать собственные типы.Первый и, вероятно, самый простой дизайн, который я придумал, - это создать таблицу для каждого продукта (каждый раз, когда пользователю нужно добавить продукт, я создаю новую таблицу) или создать мега-таблицу со всеми возможными параметрами и оставить их пустыми, но япошел бы с более гибким вариантом.В ожидании лучших идей / предложений.

1 Ответ

...