2012-05-14 4 views
3

Я делаю базу данных недвижимости, и кажется, что я делаю что-то неправильно, потому что у меня есть несколько циклов в моем дизайне. это ОК или мне нужно перепроектировать всю схему БД?Реляционные циклы в дизайне базы данных SQL

Вот моя текущая схема:

image

+1

Что такое TownRegionID? Кажется, это главная конструкция, в которой есть много ссылок. Что это на самом деле представляет в этой модели? – Joe

+0

Я думаю, что это хорошо для опции фильтра. – sdkarm

ответ

4

Нет ничего плохого в «петлях» в дизайне базы данных. Иногда вам нужно перемещать данные по нескольким направлениям.

Является ли это модель подходящей для вашего приложения, а потребности приложения - гораздо более сложный вопрос, на который нельзя ответить без полной информации о приложении и его потребностях в данных.

0

Это выглядит хорошо для меня, если ваша цель высоко нормализованной базы данных. Я не вижу ничего плохого в этом проекте.

1

Не вдаваясь в вашу конкретную конструкцию, в циклических отношениях в целом нет ничего естественного. Моделирование некоторых ситуаций на самом деле требует их (например, «истинное» отношение 1 к 1).

0

Вы связываете транзакцию с различными таблицами, которые ссылаются на промежуточную таблицу, которая также связана с транзакцией. Звучит как лишний?

Однако, это то, что говорит модель. В транзакции есть TownRegion, и в пределах этого TownRegion есть Районы, Районы, Улицы и Метрополитен, что транзакция может иметь все, некоторые или ничто (в зависимости от установленных правил).

Если какая-либо из таблиц связана с транзакцией, которая может быть в разных TownRegion, база данных должна быть изменена. И, к сожалению, схема может быть трудной для работы с некоторыми технологиями, но именно ситуация определяет данные в любом случае.

Это немного более старое сообщение здесь, но я решил, что должен упомянуть об этом.

Смежные вопросы