Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как избавиться от кольца в БД (базе данных)?

88K
14 января 2016 года
wikk
3 / / 14.01.2016
Доброго времени суток. При проектировании БД встал вопрос как избавиться от образовавшегося "кольца".

http://cs631229.vk.me/v631229690/b202/up24jrdrT_E.jpg

Подробное описание:
Допустим, таблица "Объект" (см. картинку) будет содержать разные объекты. Под объектом имеется в виду конкретный вариант из множества: гараж, квартира, дача.
У них имеются разные атрибуты: площадь, этаж, количество комнат - если это квартира; площадь участка, фундамент, туалет - если это дача.

Идея: вынести в таблицы - по причине имеющихся совершенно разных атрибутов у разных типов объекта (например, у гаража не будет атрибута "площадь кухни", "количество комнат", сколько соток, имеется ли баня в наличии, туалет и т.д.

Таким образом добавим к таблице "Объект" FK на "Тип" объекта. Таблица "Тип" связана связью многим-ко-многим с таблицей "Атрибуты". Так мы можем узнать какие атрибуты есть у конкретного объекта (иначе говоря - какие атрибуты разрешены для конкретного типа объекта).
Ну и таблица "Значение атрибута" ссылается как на объекты, так и на атрибуты и содержит значение конкретного атрибута какого-либо объекта (например, "Площадь: 40".

Вопрос - как избавиться от круговой связи (кольца), чтобы при удалении записи не возникало ошибок?
412
14 января 2016 года
grgdvo
323 / / 04.07.2007
Нету здесь никакого кольца. Посмотрите внимательнее на типы связей. У вас одна связь один-ко-многим (тип-объект) и две связи многие-ко-многим (тип-атрибут, объект-атрибут).
88K
14 января 2016 года
wikk
3 / / 14.01.2016
Цитата: grgdvo
Нету здесь никакого кольца. Посмотрите внимательнее на типы связей. У вас одна связь один-ко-многим (тип-объект) и две связи многие-ко-многим (тип-атрибут, объект-атрибут).

Тогда к чему будет относиться значение атрибута? Например: Площадь = 20, чья площадь?

1
15 января 2016 года
kot_
7.3K / / 20.01.2000
"Площадь" - связана с типом.
значение - с конкретным объектом.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог