Форум: "Базы";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];
ВнизПроектирование БД Найти похожие ветки
← →
Vlad2 (2002-08-16 06:49) [0]Здравствуйте!
Вопрос теоретический, одноко, "нет нечего практичнее хорошей теории".
Итак:
1. Существуют две сущности subType1 и subType2. Ключи соответствено
subType1.PK = {atr1, atr2, atr3}
subType2.PK = {atr1, atr2}
где art[N} - атрибуты этих сущностей.
2. Существует сущность superType, содержащая общие данные сущностей
subType1 и subType2. Её ключ superType.PK = {atr1, atr2, atr3, discriminatorSubType}.
где атрибут discriminatorSubType - дискриминатор подтипов subType1 и subType2, позволяющий соотнести значения {atr1, atr2, atr3} либо с сущностью subType1, либо с subType2.
Вопрос вот в чем:
С сущностью subType1, superType связан по {atr1, atr2, atr3},
а с сущностью subType2, superType связан лишь частью атрибутов своего PK, а именно, по {atr1, atr2}.
Насколько это правильно ?
← →
elv (2002-08-16 09:06) [1]На 78,89836%
← →
AlexSam (2002-08-16 09:14) [2]Ничего не понял. Ты бы скрипты написал.
← →
Vlad2 (2002-08-16 09:18) [3]to evl
Судя по точности процента:
1. моя схема неверна.
2. вопрос неконкретен.
Я не конкретизировал для экономии места, считая, что суть ясна.
Но, всё же, обязательно ли связь superType должна иметь одинаковую структуру для всех подтипов ?
← →
Vlad2 (2002-08-16 09:21) [4]to AlexSam
Например, требуется иметь таблицу для отображения состояния автомобилей (а/м). Состояние а/м - это:
- выполняемая работа;
- планируемая работа;
- состояние в ремонте;
Далее - вопрос первого сообщения.
← →
AlexSam (2002-08-16 09:28) [5]Я бы завел таблицы-
1. Статическая "параметры" - описание параметров автомобилей (марка, объем, год выпуска, ...)
2. Планируемая работа - что планируется по времени(связать с 1.)
3. Выполняемая работа - что выполнилось по времени(связать с 2. и 1.)
4. Состояние ремонта - переход состояния в ремонт и наобарот по времени (связать с 1.)
По-моему, проблем в проектировании базы нет.
← →
Johnmen (2002-08-16 09:32) [6]>Vlad2 (16.08.02 06:49)
Не надо умничать и выражаться книжным стилем (здесь простые нормальные люди). :-)))
Формализуй вопрос и задай его заново....
← →
Vlad2 (2002-08-16 09:56) [7]to AlexSam
Я так и сделал. При этом:
table car(idCar, ...)
car.PK = {idCar}; - это Ваша 1
table planWork(idCar, idWork, dateBeg, ...)
planWork.PK = {idCar, idWork, dateBeg}; - Ваша 2
table factWork(idCar, idWork, dateBeg, ...}
(это выданные путевые листы)
factWork.PK = {idCar, idWork, dateBeg}; - Ваша 3
table carRepair(idcar, idRepair, dateBeg, dateEnd)
carRepair.PK = {idCar, idRepair, dateBeg}; - Ваша 4
состояние а/м - это
table carStatus(idCar, idTypeWork, idWork, dateBeg, ...)
А-аа ! Извиняюсь. Вчера у меня в этой таблице в PK был атрибут idDepartment, а сегодня я его удалил. Посему проблемы нет.
И вопрос мой - лишний.
Всем спасибо, и еще раз извините.
← →
Vlad2 (2002-08-16 09:59) [8]to Johnmen
Да, что-то я не того, исправлюсь.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c