0 / 0 / 0
Регистрация: 21.06.2011
Сообщений: 48
|
|
1 | |
Связь один к одному и ошибка17.12.2012, 16:57. Показов 2436. Ответов 4
Метки нет (Все метки)
Всем привет!
Помогите, пожалуйста, разобраться с базой данных. В общем, первая проблема заключается в том, что у нас при создании связи между Первичной заявкой и Страховым договором создается один ко многим, и ее никак не получается исправить на один к одному. А когда убираем статус первичного ключа у ID договора в таблице Страховой договор и оставляем первичным лишь ID заявки, то связь становится один к одному, и все нормально. Можно ли с этим что-то сделать? (в случае, если оставить два первичных ключа). Второй вопрос. При добавлении новой записи в Транспортное средство появляется ошибка с конфликтом в базе Страхование. (кстати, те лица, которые страхуются, разделяются на физические и юридические) Как можно избавиться от этой ошибки?
0
|
17.12.2012, 16:57 | |
Ответы с готовыми решениями:
4
Связь один к одному , что дописать? ERwin 7.3 как поставить связь один к одному Связь один-к-одному и нормализация БД строительной компании. Нужно добавить связь один-к-одному |
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
|
|
18.12.2012, 16:40 | 2 |
А зачем вообще нужна заявка?! Может в страховой договор внести поле статуса, которое бы отображало состояние оформления договора: "на стадии заявки", "оформлен", "подписан", "выдан", "аннулирован" и т.д.
тогда наличие заявки отпадет само-собой. И еще. У вас страхователи привязаны к заявке, а не к договору. То есть в вашей бизнес-логике все всегда начинается с заявки: верно ли это на самом деле в жизни? И не будет ли дополнительной сложности, чтобы узнать по договору, кто является страхователем?
0
|
0 / 0 / 0
Регистрация: 21.06.2011
Сообщений: 48
|
|
19.12.2012, 04:44 [ТС] | 3 |
вполне допустимо, что вам это показалось странным
но сейчас изменить уже ничего не можем это курсовой проект (проектирование базы данных) и данная диаграмма подписана преподавателем собрались заполнить, и вот такая ошибка не знаете, из-за чего это может быть?
0
|
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
|
|
19.12.2012, 23:44 | 4 |
первый вопрос: сделать ничего нельзя - это противоречит логике связи 1-1. например есть заявка с id=5, есть договор со сложным id=<5, 25>, где 5 - это связь с заявкой, а 25 - это id договора. никто не мешает создать запись с id=<5, 26> и это будет уже другой объект. получаем связь 1-n
второй вопрос. покажите ваш insert и данные в таблице. похоже вы добавляете тс для несуществующего юр. лица. срастить можно, объедините таблицы по полям и введите поле тип. или заведите таблицу клиент и свяжите ее с юр. и физ. лицами связью один ко многим
0
|
0 / 0 / 0
Регистрация: 21.06.2011
Сообщений: 48
|
|
20.12.2012, 01:14 [ТС] | 5 |
Сегодня узнал, что от этой ошибки можно избавиться с помощью триггера
Страхователь делиться на юридические и физические лица, у каждого лица есть поле [ID страхователя] у юридических чётные, у физических нечётные значения поля. В таблице транспортное средство есть ссылка на обе таблицы по полю [ID страхователя], нужно написать триггер который проверит при заполнении поля [ID страхователя] в таблице Транспортное средство, если чётное значение, то обратиться к таблице Физ.Лица, если нечётное то Юр.Лица, так как без этого триггера SQL не знает к какой таблице обращаться и база не заполняется... В интернете не могу найти, возможно ли вобще провести такую операцию? Это задание Курсового проекта и преподаватель сказал сделать так, техзадание уже подписано. Модель базы изменить нельзя, она сама сказала что так нужно делать, а в БД я разбираюсь не очень... Кто-нибудь может помочь с написанием триггера? 0_о
0
|
20.12.2012, 01:14 | |
20.12.2012, 01:14 | |
Помогаю со студенческими работами здесь
5
Устанавливается связь один-к-одному вместо один-ко-многим Связь один к одному Связь один к одному Связь один-к-одному Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |