![]() |
|
Модераторы: LSD |
![]()
|
|
| x404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 30.11.2003 Репутация: нет Всего: нет |
Помогите с организацией БД
Проблема в следующем(а может это и напрасные опасения, тогда просто скажите, что все нормально): Есть ИЗДЕЛИЕ, оно включает в себя несколько ДЕТАЛЕЙ, каждое из которых имеет на изготовление свою норму времени и расценку. ДЕТАЛЬ можно изготовить на нескольких цехах(их 7 штук - цехов) и естественно различные нормы. Так вот как мне хранить эти цеха в одной табличке (как я и хочу, там просто названия цехов без всяких дополнительной информации по нему, хотя они и находятся в разных городах) или в различных таблицах? ИЗДЕЛИЕ хранить в отдельной таблице или нет? (хочу в этой же). На данный момент таблица мне представляется такой ---------------------- id_izd id_det (ключевое) Наименование изделия Диаметр изделия Наименование детали Количество деталей(Это вроде примечания. Ни на что влиять не будет) Норма времени Расценка Цех1 Цех2 ... Цех7 --------------------- Изделие не могу хранить в другой таблице, потому как вообще изделие включает в себя другие дополнительные параметры расценка это только часть, а для того чтобы предложить внесение в полный состав ИЗДЕЛИЯ(id_izd как раз для этого) необходимо выбрать как раз из таблицы по Наименованию изделия и Диаметру изделия. з.ы.Может это вообще ни к чему я написал. Используется SYBASE. Пишу на Delphi.(если это чем то поможет) Спасибо! |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Связанные таблицы и только так.
Пример: Таблица 1. 1. | Изделие№1 | Другие характиристики Изделия№1 2. | Изделие№2 | Другие характиристики Изделия№2 N. | .................. | ........................................................... Справочник цехов 1. | Цех№1 2. | Цех№2 Справочник деталий 1. | Деталь1 | 1(идентификатор принадлежности к 1-му изделию) | 2(идентификатор принадлежности к 2-му цеху) | Другие характиристики Детали1 2. | Деталь2 | 2(идентификатор принадлежности к 2-му изделию) | 2 | Другие характиристики Детали2 3. | Деталь3 | 1 | 1(идентификатор принадлежности к 1-му цеху) | Другие характиристики Детали2 N. | ............. | .. | .................................................... | .......... Это сообщение отредактировал(а) Cashey - 28.1.2004, 11:33 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Я бы сделал так:
1. Таблица для изделия включает в себя только описание изделия. И больше ничего. 2. Отдельная таблица для деталей. 3. Таблица для связи иделия и деталей, входящих в него. 4. Отдельная талица для списка цехов. ИД, наименование, месторасположение и прочая. 5. Таблица для связи детали и цеха. Вот тут можно поиграть вовсю. Номер детали, номер цеха, норма для этого цеха. Это просто минимум. Вот получается 5 таблиц. Поехали дальше Также можно легко перейти к виду, когда деталь просто необходимо делать в нескольких цехах. Например сначала в первом, потом в четвертом, потом в десятом. Просто добавляется столбец "порядок обработки". Причем если порядок обработки например для цеха1 и цеха4 одинаковый, это значит, что данную операцию над деталью можно исполнять как в цехе 1, так и в цехе 4. Если деталь может быть сделана в любом цехе - значит у всех одинаковы1 "порядок обработки". Можно пойти еще дальше Сделать таблицу операций - обточка, фрезировка, шлифовка и прочая. И в таблице связи цеха и детали добавить столбец для операции. Вообщем фантазия разбежалась далеко Как видишь при моем варианте более высокая гибкость получается - цехов немерянно, легко расширять (показал на примере операций), деталь можно ограничить обработкой только в нескольких цехах, а не во всех 7 (как у тебя). |
|||
|
||||
| term |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.1.2004 Репутация: нет Всего: нет |
Еще вариант:
1. изделия 2. детали 3. нормы времени и расценки с ссылкой на детали и цеха 4. цеха Если же таблица изделий содержит справочную информацию о всех возможных деталях для изделия, а реально выпускаемое изделие отличается от справочного, тогда понадобится еще две таблицы: 5. выпускаемые изделия (id_izdV, ссылка на справочное изделие id_izd) 6. соответствие деталей выпускаемому изделию (id_izdV, id_det) Если одна деталь может подходить для разных изделий, тогда понадобится 7 таблица для связи 1 и 2: 7. соответствие деталей справочному изделию. Если нормы времени и расценки будут меняться, тогда в 3 таблицу вводится поле <дата начала действия новых норм и расценок>. Старые нормы удалять не надо. Понадобится еще одна таблица 8 (по порядку после 6): 8. ссылки на нормы и расценки (ссылки на записи 3-ей таблицы). |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Если точно известно, что цехов ровно 7, то это можно упростить. И создать в таблице с деталями семь логических полей и заполнять их в соответсвие с цехом. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Может быть. Но я бы так не делал. Слишком жесткая связь получается. Мало ли что там произойдет. А что если деталь надо дважды, а то и трижды через один цех проводить в разном порядке ? Я имею в виду, что в первоначальной таблице нет возможности установить произвольный порядок обработки детали. А если технология изменится, а если вдруг цех разделят на два или сольют из двух один. По теории лучше бить на части. Хотя это как обычно только IMHO. |
|||
|
||||
| x404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 30.11.2003 Репутация: нет Всего: нет |
-------------------------------------------------------
AntonSaburov 1. Таблица для изделия включает в себя только описание изделия. И больше ничего. 2. Отдельная таблица для деталей. 3. Таблица для связи иделия и деталей, входящих в него. 4. Отдельная талица для списка цехов. ИД, наименование, месторасположение и прочая. 5. Таблица для связи детали и цеха. Вот тут можно поиграть вовсю. // ТУТ Я ЕЩЕ ДОБАВЛЯЮ СВЯЗКУ НА ЗАВОД И В ИТОГЕ : ЗАВОД-ЦЕХ-ДЕТАЛЬ Номер детали, номер цеха, норма для этого цеха. Это просто минимум. ------------------------------------------------------- Тут оказалось, что цеха все-таки разнесены по заводам(вроде их железно 3 штуки, но то как оказалось на самом деле с цехами не очень то хорошо и решил добавить еще таблицу ЗАВОДЫ. Или проще вводить ~60 штук цехов сразу в одну таблицу? 6. ЗАВОД И ище как сделать так, если деталь не будет изготавливаться на одном из заводов, а покупаться где-то на стороне.(применить ответ term?) |
|||
|
||||
| x404 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 30.11.2003 Репутация: нет Всего: нет |
А что если сделать так:
1. Перечень изделий и деталей -ИД_Дет -Наименование изделия -Диаметр -Наименование детали -Количество 2.Завод1 -ИД -ИД_Дет(связка на 1-ю таблицу) -Норма времени1 (1 - это для первого цеха на этом заводе) -Расценка 1 -Норма времени2 (второй цех) -Расценка 2 ... 3. Завод2 -ИД -ИД_Дет(связка на 1-ю таблицу) -Норма времени1 (1 - это для первого цеха на этом заводе) -Расценка 1 -Норма времени2 (второй цех) --Расценка 2 -Норма времени3 -Расценка 3 ... И таблиц будет столько сколько заводов. И по мере ввода будут добавляться по 2 поля на каждый цех |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Не нравится мне эта идея. IMHO лучше сделать столько таблиц, сколько есть реальных сущностей. А это: - изделие - детали + таблица для связи с изделиями - завод - цех (в нем поле, к какому заводу принадлежит) - ну и связь детали с цехом. Причем т.к. все цеха в одной таблице и каждый имеет свой ИД, то уже завод в принципе может быть не всегда использоваться - его всегда можно найти через цех. |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |