Атомность поля для номеров деталей - PullRequest
1 голос
/ 29 июня 2010

В нашем приложении внутренней инвентаризации мы храним три значения (в отдельных полях), которые становятся напечатанным «номером детали» в следующем формате: PPP-NNNNN-VVVV (P = префикс, N = номер, V = версия).

Так, например, если у вас есть деталь 010-00001-01, вы знаете, что это версия 1 детали типа "010" (которая, скажем, печатная плата).

Итак, в процессе создания деталей инженерия хочет сгруппировать детали, оставив компонент «число» (средние 5 цифр) одинаковым для нескольких префиксов, например:

001-00040-0001 - Overall assembly
010-00040-0001 - PCB
015-00040-0001 - Schematics

Это кажется проблематичным и разочаровывающим, поскольку иногда добавляет дополнительное значение в поле «число» (но не всегда, поскольку не все части с одинаковым компонентом «число» обязательно связаны).

Я пурист или это нормально? 1NF ужасно расплывчат в отношении атомарности. Я думаю, что я в основном разочарован из-за дополнительной логики, гарантирующей, что следующая «числовая» часть общего номера детали действительна и доступна для всех префиксов.

Ответы [ 2 ]

1 голос
/ 29 июня 2010

Был целый ряд предприятий, которые основали или почти основали "синдром номера детали". Вы могли бы найти некоторые тематические исследования. Номера деталей DEC были несколько перепутаны.

Клиент не всегда прав, но клиент всегда является клиентом.

В этом случае мне кажется, что инженерия пытается использовать одно число для моделирования отношений. Я имею в виду связь между сборкой, печатной платой и Scematics. Лучше моделировать отношения как отношения. Это позволяет вам больше гибкости в будущем. В этом случае вам может быть трудно продавать инжиниринг.

1 голос
/ 29 июня 2010

По моему опыту, независимо от нормативных правил базы данных, когда клиент / клиент / пользователь хочет, чтобы что-то было сделано определенным образом, скорее всего, есть причина для этого, и эта причина сэкономит им деньги (каким-то образом).Иногда это поможет сэкономить деньги, сократив количество шагов, сократив расходы на обучение или просто потому, что так было всегда.Какова бы ни была причина, в конечном итоге вы в конечном итоге сделаете это, потому что они платят за это (если это не нарушает правила бухгалтерского учета).

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

...