Как дифференцировать продукты в зависимости от атрибутов в схеме базы данных точек продаж - PullRequest
1 голос
/ 15 января 2011

Вот моя дилемма, я создаю POS-систему для довольно крупного ритейлера, у них разные продукты, которые имеют разные атрибуты (размер, цвет и т. Д.).

Когда они получают товар от поставщика, они хотят сделать свою собственную маркировку с помощью своих собственных штрих-кодов UPC, но они также хотят различать различные размеры, используя код на статье.

Скажем, они получили рубашки марки А с 4 размерами S, M, L, XL, тогда они должны иметь разные штрих-коды для каждого размера.

Итак, я подумал о том, чтобы иметь базовый код для статьи, а затем объединять числа в зависимости от атрибутов, имеющих разные коды? и если нет доступных атрибутов, просто добавьте 0s

Я храню размеры и цвета в качестве атрибутов в базе данных как (Entity-Attribute-Value). Является ли их лучший способ, кроме того, чтобы начать объединять числа из атрибутов, чтобы получить полный код?

Спасибо за вашу помощь!

редактировать ------------------------------------------- ------------

Я делаю пример немного яснее поэтому базовый код для рубашек: 9 123456 Тогда для цвета синий это: 789 а затем для размера S: 012 поэтому полный код 9 123456 789012

для другой статьи, которая не имеет размера, цвета или какого-либо атрибута базовый код будет 9 654321 плюс 000000 для атрибута часть

это просто для простоты, поскольку я могу использовать только одну цифру для каждого атрибута.

Другая проблема заключается в том, что при связывании с таблицей OrderDetails мне нужно ссылаться на все атрибуты, чтобы знать, что клиент на самом деле купил Размер S синим цветом

Ответы [ 3 ]

2 голосов
/ 15 января 2011

Одним из возможных вариантов является создание таблицы, в которой в качестве ключа хранится штрих-код. Затем есть атрибут для размера и цвета.

0 голосов
/ 15 января 2011

если вы забудете штрих-код на минуту ...

У вас есть база данных для отслеживания этого инвентаря?

хранятся ли элементы отдельно в этой базе данных?

если это так, то просто добавьте к номеру уникальный номер, который называется UPC vale - я рекомендую не пытаться сделать интеллектуальный ключ с \, как вы описываете

0 голосов
/ 15 января 2011

На самом деле @jzd ваш ответ довольно близок, но я бы хотел сохранить атрибуты как пару ключ-значение.

Идея состоит в том, чтобы использовать и набор атрибутов, и иметь штрих-код, связанный с каждым набором. вот примерная схема

AttributeSet Table:
 AttributeSetId
 ProductId
 AttributeSetName
 BarCode


AttributeUse Table:
 AttributeSetId
 AttributeId

AttributeSetInstance Table: 
 AttributeSetId
 AttributeId
 AttributeValueId
...