2 / 2 / 3
Регистрация: 01.06.2013
Сообщений: 87
|
|
1 | |
Построение реляционной БД с IF15.05.2015, 06:34. Показов 547. Ответов 5
Метки нет Все метки)
(
Пишу тест задание: Менеджер вкладов.
Требуется БД (логически верная организация структуры, обеспечение целостности данных) Появился вопрос, который я не смог с наскока решить. Есть вкладчик, он может быть как физ лицом, так и юр лицом. Можно, конечно, подогнать всех под одну гребёнку, но, вроде бы как, надо создавать сущности Человек и Организация, но тогда появляется корявая переменная. Что же делать? картинка структуры бд Кликните здесь для просмотра всего текста
bb код [img] не работает? картинка ссылкой вставилась =\
0
|
|
15.05.2015, 06:34 | |
Ответы с готовыми решениями:
5
Построение реляционной модели по схеме Построение реляционной модели Разобраться с реляционной БД Выбор не реляционной БД |
![]() 17324 / 7150 / 1614
Регистрация: 21.06.2012
Сообщений: 13,499
|
|
15.05.2015, 07:18 | 2 |
Таблица одна, с полем код типа вкладчика, и дополнительная таблица-справочник этих типов.
0
|
2 / 2 / 3
Регистрация: 01.06.2013
Сообщений: 87
|
|
15.05.2015, 07:36 [ТС] | 3 |
ltv_1953, вопрос не в том, как представить типы вкладчика, вопрос в том, как привязать к одной сущности 2 другие, но с тем условием, что использоваться может только одна из них. т.е. каждый ID_вкладчика в сущности вкладчик может быть связан ИЛИ с человеком, ИЛИ с организацией, но не с обоими. ну на картинке ж вроде бы показано)
0
|
![]() 17324 / 7150 / 1614
Регистрация: 21.06.2012
Сообщений: 13,499
|
|
15.05.2015, 07:40 | 4 |
Еще раз - сущность одна - вкладчик, у которого один из атрибутов - тип.
0
|
2 / 2 / 3
Регистрация: 01.06.2013
Сообщений: 87
|
|
15.05.2015, 08:04 [ТС] | 5 |
ltv_1953, ещё раз - правоотношение и есть этот самый тип, проблема в том, что у физ и юр лиц разные документы, а следовательно их нельзя запихать в одну сущность. Поэтому создаётся 2 сущности человек и организация. Ну то, что человек может быть сотрудником, а организация, собственно, банком, в который вклад положили, это мелочи. Вопрос в том, как id вкладчика связать с id человека, если физ лицо, и организации, если юр лицо.
т.е. если делать как на той картинке, то работа с бд будет выглядеть так: if(select вкладчик.правоотношение where вклад.id_вклада=1 and вклад.id_вкладчика=вкладчик.id_вкладчика == физ лицо) { print( select человек.имя, человек.всякаяфигня where вклад.id_вкладчика=вкладчик.id_вкладчика && вкладчик.id_корявое = человек.id_корявое) } else { print( select человек.название, организация.всякаяфигня where вклад.id_вкладчика=вкладчик.id_вкладчика && вкладчик.id_корявое = организация.id_корявое) } ну и там иннер джоины всякие, не суть. Получается как-то странно. А id_корявое потому корявое, что id человека и организации может совпадать, т.к. друг от друга не зависят, а значит будет существовать 2 вкладчика с разными Id вкладчика и правоотношением, но с одинаковыми id_корявое, что вроде бы как коряво, или всё нормально? как вариант можно id_корявое разделить на 2 части, так сказать: соответственно, если физ лицо, то заNULLяется id_организации, а id_персоны нумеруется, а если юр лицо, то заNULLяется id_персоны. вроде бы менее коряво с одной стороны, но в плане работы с такой бд один фиг гемморой, и едва ли меня за такое похвалят ![]() если вы поняли и советуете правильно, а я туплю, то нарисуйте, пожалуйста структуру бд, может быть так я въеду)
0
|
Модератор
4214 / 3054 / 582
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
15.05.2015, 09:31 | 6 |
![]()
1
|
15.05.2015, 09:31 | |
Помогаю со студенческими работами здесь
6
Структура реляционной БД MS Access Запросы реляционной алгебры из реляционной в схему данных Запрос в реляционной алгебре Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |