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

Вниз

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

 
MORA   (2004-07-12 13:31) [0]

Вот ломаю голову над структурой своей БД, никак не сломаю...
Помогите хоть в чем-то!
Есть 4 таблицы: Заказы, Заказчики, Объекты и Системы. Я не знаю еще как их связать, но логика должна быть такой: в форме оформления заказа (данные вносятся в табл. Заказы) я должен выбрать Заказчика, в зависимости от заказчика - объект, в зависимости от объекта - систему.
У меня получается так, что связи замыкаются в кольцо. Но ведь это же неправильно?


 
Johnmen ©   (2004-07-12 13:33) [1]

Кольца не видно...


 
MORA   (2004-07-12 13:39) [2]

1) в Заказах поле Заказчик берется из табл. Заказчики.
2) в Заказах поле Объект берется из табл. Объекты.
3) в Объектах поле Заказчик берется снова из табл. Заказчики.


 
Курдль ©   (2004-07-12 13:39) [3]

ЗАКАЗ >---+ СИСТЕМА >---+ ОБЪЕКТ >---+ ЗАКАЗЧИК


 
VadimKV   (2004-07-12 13:40) [4]

Кольцо ни чего страшного! Если не используешь каскадное обновление и удаление данных.


 
Курдль ©   (2004-07-12 13:41) [5]


> MORA   (12.07.04 13:39) [2]
> 1) в Заказах поле Заказчик берется из табл. Заказчики.
> 2) в Заказах поле Объект берется из табл. Объекты.
> 3) в Объектах поле Заказчик берется снова из табл. Заказчики.

Нафига?

Выбираешь систему - остальное само подставляется (но это если что ты правильно поставил зависимости в [0])


 
bushmen ©   (2004-07-12 13:44) [6]

С Заказчиками, объектами и заказами понятно. А что такое Система ?


 
Johnmen ©   (2004-07-12 13:45) [7]

>MORA   (12.07.04 13:39) [2]

Снова не видно кольца...:)


 
MORA   (2004-07-12 13:50) [8]

например, Заказчик - строительная фирма. Он покупает у меня оборудование (например, электрические розетки). Заказчик строит много ОБЪЕКТОВ (например, гостиницу, бар, квартиру). Каждый объект может иметь СИСТЕМУ (вентиляции, освещения, ...). Для каждой из этих систем используются мои розетки. Розетки я привяжу к заказам таблицей ЗАКАЗАНО, а как остальные завязать?


 
bushmen ©   (2004-07-12 14:05) [9]

Через Справочник оборудования (прайс) и таблицы вхождения оборудования в Систему


 
Курдль ©   (2004-07-12 14:18) [10]


> MORA   (12.07.04 13:50) [8]

Это окончательный вариант, или Вы еще будете "уточнять"?

СИСТЕМА +-----< ЗАКАЗ >---+ ОБЪЕКТ >---+ ЗАКАЗЧИК


 
Курдль ©   (2004-07-12 14:20) [11]

Даже не так:

ЭЛЕМЕНТ +-----< ЗАКАЗ >---+ СИСТЕМА >---+ ОБЪЕКТ >---+ ЗАКАЗЧИК


 
bushmen ©   (2004-07-12 14:21) [12]

> Курдль ©   (12.07.04 14:18) [10]

Тут еще Оборудования не хватает


 
Курдль ©   (2004-07-12 14:26) [13]

я имел в виду "ЭЛЕМЕНТ ОБОРУДОВАНИЯ"


 
bushmen ©   (2004-07-12 14:36) [14]

2MORA:

А зачем тебе вообще Система нужна? Неужели ты будешь бегать за заказчиком и смотреть, чтобы он действительно выключатель с серийным номером АА установил в ту систему, а не иную? :)


 
MORA   (2004-07-12 15:43) [15]


> ЭЛЕМЕНТ +-----< ЗАКАЗ >---+ СИСТЕМА >---+ ОБЪЕКТ >---+ ЗАКАЗЧИК
>

Ну да. Конечно. Вопрос снят. Я именно так и сделал. Я просто мысленно не отделил таблицы от формы.


 
MORA   (2004-07-12 15:56) [16]


> А зачем тебе вообще Система нужна? Неужели ты будешь бегать
> за заказчиком и смотреть, чтобы он действительно выключатель
> с серийным номером АА установил в ту систему, а не иную?
> :)

я пример привел гипотетический. Я занимаюсь более серьёзными вещами нежели выключатели. И они действительно имеют серийные номера и не дай бог её не туда вставить.


 
MORA   (2004-07-20 13:09) [17]

получилось, что такая структура у меня:
ЭЛЕМЕНТ +-----< ЗАКАЗ >---+ СИСТЕМА >---+ ОБЪЕКТ >---+ ЗАКАЗЧИК


> Курдль ©   (12.07.04 13:41) [5]
> Нафига?
>
> Выбираешь систему - остальное само подставляется (но это
> если что ты правильно поставил зависимости в [0])


но... что означает "остальное само подставляется" ?
Понятно, что я храню в ЗАКАЗАХ только СИСТЕМУ. Но в форме-то я вначале выбираю ЗАКАЗЧИКА.

Допустим, открывается форма редактирования заказа. Ну СИСТЕМУ он нашел. А все, что якобы должно подставиться ручками искать в OnActivate или как?


 
MORA   (2004-07-20 14:13) [18]

???


 
CrazyElk ©   (2004-07-20 19:22) [19]

2 MORA для начала забудь как это выглядит на экране и постарайся ответить на вопрос нумбер 1 (сам себе в первую очередь).

>в зависимости от заказчика - объект, -- значит ли это что эти обьекты принадлежат этому заказчику и никакому другому или это значит что заказчик имеет право работать с этим обьектом (или обьектом такого типа) (и возможно другие заказчики с ЭТИМИ ЖЕ обьектом/типом тоже имеют право работать)
Аналогично по
>в зависимости от объекта - систему -- принадлежит ли система обьекту (или обьекту принадлежит экземпляр обьекта типа система или система связанна с обьектом и возможно с другими обьектами тоже)

Вопросы собственно о терминологии. Система это экземпляры системы или  справочник видов систем. Тип связи один к одному один ко многим, принадлежность или ссылка и т.д. и т.п.

Вот отвечая на такие вопросы (а не как это выглядит на экране) и рисуем связи и структуру БД.

В зависимости от ответов число таблиц может сильно увеличится. Например если слово "система" подразумевает справочник видов систем а по фраза "по заказчику выбираем систему" то что заказчик имеет право работать только с определенными видами этих систем и в заказ может попасть только те системы с какими заказчик имеет право работать то добавлется справочник разрешенных заказчику систем. А на поля (скажем нам очень важен оперативный просмтр и отбор заказов по системам) код зказчика и код системы в заказе наложится еще и связь с этим спрвочником в дополнение к связям на заказчика и на систеу. БД и по другому можно спроектировать тут по месту смотреть надо что и когда оттуда брать будут, как и как часто добавлять/менять. Что делать со старыми заказами если заказчику запретили заниматься системой стрерть записи или предотвратить ввод новых. Короче ты все понял.

WBR CrazyElk



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
3-1090480287
SergP
2004-07-22 11:11
2004.08.15
LEFT JOIN. Как Null "преобразовать" в 0?


1-1091276543
mikey
2004-07-31 16:22
2004.08.15
Добрый день. Есть список


14-1091203407
Rem
2004-07-30 20:03
2004.08.15
Где пятничные задачки?


3-1090408271
Иванов Сергей
2004-07-21 15:11
2004.08.15
Выборка из большой базы


1-1091380009
GuAV
2004-08-01 21:06
2004.08.15
Как вставить кнопки в TToolBar, созданный в ран-тайме?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский