Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

Структура БД   Найти похожие ветки 

 
Аноним   (2005-09-28 13:24) [0]

Необходимо разработать структуру таблиц БД для хранения нормативов технологических процессов.

Т.е. есть некоторая технология изготовления некоторого продукта, которая состоит из нескольких этапов (минимум - 1; максимум ~ 20). На каждом этапе из исходных материалов (и/или полуфабрикатов - результаты предыдущих этапов) получают полуфабрикаты. На последнем этапе результатом является готовый продукт.

Каждый этап характерезуется одним или нескольким нормативами (т.е. один и тотже продукт или полуфабрикат можно получить несколькими способами), в котором задются:
1. материалы на входе (1..N)
2. материалы на выходе (1..M)

Нужно организовать структуру БД таким образом, чтобы быстро выполнялись SQL запросы, для получения всего списка необходимых материалов для получения некоторого готового продукта, например,

ГП1:
 - Полуфабрикат 1
   - Полуфабрикат2
   - Полуфабрикат3
   - Полуфабрикат4
 - Полуфабрикат5
   - Полуфабрикат6
   - Полуфабрикат7
     - Полуфабрикат8
       -Сырье3
     - Полуфабрикат9
       - Полуфабрикат10
         -Сырье1
         -Сырье2

Имеются таблицы:
1. Номенклатура (хранит всю номенклатуру включая сырье, полуфабрикаты и готвую продукцию) с полями id, name, ntype(вид номенклатуры)
2. Процессы (хранит технологические этапы) с полями id и name.
3. Варианты процесса (таблица нужная для того, чтобы обеспечить возможность получения одного продукта/полуфабриката в одном этапе разными способами) с полями id и name.
4. Таблица соответствия с полями:
 id_процесс, id_вариант, id_вход_номенклатура, id_выход_номенклатура, где поля id_* - это ссылки на соответствующие таблицы, а поля id_вход_номенклатура, id_выход_номенклатура - ссылки на таблицу номенклатура.

Может лучше использовать какую-нибудь другую структуру? Поделитесь опытом, мнениями как лучше организовать БД?

Планируется использование MS SQL 2000.


 
msguns ©   (2005-09-28 13:31) [1]

Типичная задача на разузлование с расцеховкой. Советую хоть в общих чертах ознакомиться с теорией графов для начала.

Вид БД в данном случае не столь принципиален, как верно смоделироваванная БД.


 
Курдль ©   (2005-09-28 13:32) [2]

Проектирование БД - наиболее ответственный и трудоемкий процесс.
Мне кажется, что на форуме его не решить. Это надо сесть с заказчиком, разрисовать бизнесс-процесс. Потом неспешно нарисовать концептуальную модель, опять согласовать с заказчиком (всегда появляются новые вопросы) и так - несколько итераций.


 
Sergey13 ©   (2005-09-28 13:45) [3]

2 Аноним   (28.09.05 13:24)
[1]+[2]+думать+думать+пробовать+думать....
Как знакомо. Я подобное год писАл + 2 года дорабатывл.


 
Курдль ©   (2005-09-28 13:47) [4]


> Аноним   (28.09.05 13:24)


А с какими CASE-инструментами Вы работаете?


 
MOA ©   (2005-09-28 15:28) [5]

И, ПМСМ, нельзя затачивать структуру под этот критерий:
>таким образом, чтобы быстро выполнялись SQL запросы
ПМСМ, это ошибка. Нужно делать как нужно. По опыту - заточки структуры под "быстрое выполнение запросов" ни к чему хорошему не приводит, а даже и наоборот - гарантированно приводит к необходимости пересмотра структуры.
Тем более, заточка под скорость выполнения запросов как правило не актуальна для MSSQL. Если запрос будет медленно выполняться - только тогда стоит что-то предпринимать. Кстати, программист всегда (ну, или очень часто ;)) ошибается прикидывая "как будет быстрее" - именно поэтому и существут профилировщики ;).
Удачи!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
11-1110634509
Watcher
2005-03-12 16:35
2005.11.06
Transparent


6-1122299778
maxwellz
2005-07-25 17:56
2005.11.06
перехват TCP/IP пакетов


2-1129269846
Fynjy1984
2005-10-14 10:04
2005.11.06
Секундомер


2-1129097058
Smolin
2005-10-12 10:04
2005.11.06
Строковые функции


1-1129182769
Andruid
2005-10-13 09:52
2005.11.06
Алгоритм простейшего элемента нейросетей - компаратора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский