2 / 2 / 3
Регистрация: 01.06.2013
Сообщений: 87
1

Построение реляционной БД с IF

15.05.2015, 06:34. Показов 547. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу тест задание: Менеджер вкладов.
Требуется БД (логически верная организация структуры, обеспечение целостности данных)
Появился вопрос, который я не смог с наскока решить. Есть вкладчик, он может быть как физ лицом, так и юр лицом. Можно, конечно, подогнать всех под одну гребёнку, но, вроде бы как, надо создавать сущности Человек и Организация, но тогда появляется корявая переменная. Что же делать?
картинка структуры бд

Кликните здесь для просмотра всего текста
bb код [img] не работает? картинка ссылкой вставилась =\
Миниатюры
Построение реляционной БД с IF  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2015, 06:34
Ответы с готовыми решениями:

Построение реляционной модели по схеме
Здравствуйте! не мог бы кто-нибудь объяснить как и где можно построить по схеме реляционную...

Построение реляционной модели
Задание - создать БД про Формулу 1. Сущностей, которые уже созданы, вполне достаточно. Помогите,...

Разобраться с реляционной БД
Привет! Помогите пожалуйста с реляционной базой. Знаю, просьба так себе, но может найдется время...

Выбор не реляционной БД
Посоветуйте не реляционную базу данных. Структура данных будет иметь вид рекуррентной семантической...

5
Эксперт MS Access
17324 / 7150 / 1614
Регистрация: 21.06.2012
Сообщений: 13,499
15.05.2015, 07:18 2
Цитата Сообщение от Chronya Посмотреть сообщение
Есть вкладчик, он может быть как физ лицом, так и юр лицом.
Таблица одна, с полем код типа вкладчика, и дополнительная таблица-справочник этих типов.
0
2 / 2 / 3
Регистрация: 01.06.2013
Сообщений: 87
15.05.2015, 07:36  [ТС] 3
ltv_1953, вопрос не в том, как представить типы вкладчика, вопрос в том, как привязать к одной сущности 2 другие, но с тем условием, что использоваться может только одна из них. т.е. каждый ID_вкладчика в сущности вкладчик может быть связан ИЛИ с человеком, ИЛИ с организацией, но не с обоими. ну на картинке ж вроде бы показано)
0
Эксперт MS Access
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
Цитата Сообщение от Chronya
но в плане работы с такой бд один фиг гемморой, и едва ли меня за такое похвалят
Вариантов всего два: либо физики и юрики находятся в одной таблице и на нее одно поле для ссылки (чаще всего так и делают), либо для них две таблицы и два поля для ссылки.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2015, 09:31
Помогаю со студенческими работами здесь

Структура реляционной БД MS Access
Здравствуйте! Подправьте, пожалуйста модель данных, сделанную мной в MS Access, уже просто не вижу...

Запросы реляционной алгебры
Доброго времени суток, уважаемые форумчане! Мне очень нужна ваша помощь! Я написал несколько...

из реляционной в схему данных
всем привет) сразу в лоб: такая проблема.с преподом нарисовали реляционную модельку данных, говорит...

Запрос в реляционной алгебре
У меня вообще нету идей по поводу такого задания: Каким способом можно получить множества...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru