Форум: "Базы";
Текущий архив: 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.039 c