2014-11-16 3 views
0

Я хочу создать базу данных, которая отслеживает цикл разработки продукта.Разработка базы данных для этапов

Это 4 шаги

  1. в очереди
  2. Обработанные
  3. В пути
  4. Поставленный

В очереди означает, что он прибыл в депо. Porcessed означает, что он был упакован в причудливый упаковочный материал и проверен на наличие каких-либо недостатков. В Transit означает, что в настоящее время он находится в фургоне, идущем к клиенту. Поставка означает, что он был доставлен клиенту.

Я знаю, что есть otiopn, где я бы

tblProducts 
========== 
idProduct 
Description 
IdStatus 

Status 
====== 
Id 
Status 

Однако им интересно, если есть лучший вариант, возможно, тип каскадное с нулём, как этот

Products 
======== 
IdProduct 
Description 


Step1 
===== 
Id 
IdProduct 
Step2 - nullable 

Step2 
===== 
Id 
Step3 - nullable 


Step3 
======= 
Id 
Step4 - nullable 

Например, если шаг 1 завершен, у него будет шаг1. Если шаг 2 будет завершен, тогда у него будет шаг2.

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

Im не в состоянии добавить теги, потому что автозаполнение не работает для me.please кого-то добавить SQL проектирование базы данных.

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

http://hansolav.net/sql/graphs.html

ответ

1

Многое зависит от фактического использования.

Например, вы можете создать дополнительный объект под названием Transition. Эта таблица может содержать строку для каждого разрешенного перехода между этапами. Это позволит вам добавить дополнительные шаги, перенести продукты из одного потока в другой и удалить шаги.

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

Эта процедура также может позаботиться о проверке перехода на основе текущего шага и состояния продукта.

+0

Не могли бы вы попросить что-нибудь сделать, чтобы я мог подтвердить im на той же странице, что и вы, так: D – Aflred

+0

nevermind я понимаю сейчас. – Aflred

0

На самом деле достаточно иметь две таблицы. Один с шаговыми типами, например 1 = в очереди, 2 = в пути и т. Д.

Это делает дизайн простым, но стабильным. он уменьшает дублирование данных.

В таблице продуктов вы добавляете столбец с именем StepId. Степид равен значению из таблицы шагов (описано выше).

Это также позволяет вам быстро добавить несколько шагов - просто добавив строку вместо таблицы.

Вы также можете быстро группировать свои данные на каждом шаге.

Если это неясно, сообщите мне, и я приведу для вас короткий пример.

+0

вы всегда должны сделать пример, потому что люди будут читать это, а некоторые могут не понимать. Я думаю о том, что вы делаете точно так же, как и вы. – Aflred

+0

моего ноутбука нет. Вот почему я подумал, что я должен опубликовать его, а затем сделать образец позже. – user3514987

Смежные вопросы