|
|
|
Нужна помощь в лучшем выборе схемы БД для агентства недвижимости
|
|||
|---|---|---|---|
|
#18+
Салют, возник следующий вопрос в ходе проектирования БД для агентства недвижимости. Итак, рассматриваются следующие виды недвижимости: земельные участки, жилая и нежилая недвижимость. В базе данных предполагается хранить информацию о продаже и аренде данных видов объектов, при этом, заносится в БД будет информация как о спросе клиентов на тот или иной тип объектов, так и о предложении клиентом конкретного объекта. В зависимости от того, спрос это и предложение, продажа или аренда, жилая/нежилая/земельный участок, у объекта недвижимости некоторые атрибуты будут присутствовать в одном случае, и отсутствовать в другом. Например: у предложения аренды жилой недвижимости есть атрибут "требования к съемщику", а в спросе аренды жилой недвижимости или продажи жилой недвижимости такого атрибута уже не будет; у предложения сдачи нежилого помещения есть атрибут "допустимое использование (на усмотрение владельца)", а в предложении продажи нежилого помещения такого атрибута нет. Сам вопрос заключается вот в чём: как организовать сущность "недвижимость"? Пока рассматривал 2 варианта: 1. Создать одну сущность "недвижимость", в неё запихать все атрибуты для предложения/спроса продажи/аренды жилой/нежилой/земли, но у всех атрибутов, соответствующих конкретному типу недвижимости, поставить атрибут, допускающий NULL-значение. 2. Создать одну сущность "недвижимость", в которой будут 12 NULL-допустимых int-полей - внешних ключей, и 12 таблиц конкретных типов недвижимости типа "предложение_продажа_жилая_недвижимость", "предложение_аренда_жилая_недвижимость"...., и в каждой из 12 таблиц будут описаны атрибуты, соответствующие только этому типу. Ну и при создании объекта недвижимости будет создаваться конкретный объект недвижимости из соответствующей таблицы, и её первичный ключ будет использован в качестве внешнего ключа в общей таблице недвижимость. Потом, общая таблица будет связываться с другими таблицами, не связанными с типами недвижимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 12:27 |
|
||
|
Нужна помощь в лучшем выборе схемы БД для агентства недвижимости
|
|||
|---|---|---|---|
|
#18+
tooTired2. Создать одну сущность "недвижимость", в которой будут 12 NULL-допустимых int-полей - внешних ключей, и 12 таблиц конкретных типов недвижимости типа "предложение_продажа_жилая_недвижимость", "предложение_аренда_жилая_недвижимость"...., и в каждой из 12 таблиц будут описаны атрибуты, соответствующие только этому типу. Безотносительно сравнения с первым вариантом - лучше сделать не 12 внешних ключей в главной таблице, а по одной ссылке на главную в каждой из 12 дочерних таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 12:58 |
|
||
|
Нужна помощь в лучшем выборе схемы БД для агентства недвижимости
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, а потом, если мне нужно через общую таблицу обратиться к частной таблице, которая имеет ID общей в качестве внешнего ключа, мне нужно будет делать 12 join'ов по частным всем таблицам, чтобы найти ту самую? Просто для спроса и предложения планировалось сделать также отдельные сущности, которые будут связывать клиента с недвижимостью. Планируется хранить внешний ключ на недвижимость и клиента в таблицах "спрос" и "предложение", вот только как получить информацию об объекте через общую таблицу, кроме как через просматривание 12 частных таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 13:11 |
|
||
|
Нужна помощь в лучшем выборе схемы БД для агентства недвижимости
|
|||
|---|---|---|---|
|
#18+
tooTiredКот Матроскин, а потом, если мне нужно через общую таблицу обратиться к частной таблице, которая имеет ID общей в качестве внешнего ключа, мне нужно будет делать 12 join'ов по частным всем таблицам, чтобы найти ту самую? Ээ, зачем? Если Вы знаете, что Ваша главная запись - на самом деле "предложение_аренда_жилая_недвижимость", то и соединяете только ее. Если не знаете - то и в варианте с 12 внешними ключами придется соединять все таблицы. Если Вы хотите выяснять принадлежность к подразделам по атрибутам "главной" записи, не делая соединений - добавьте в главную таблицу поле "тип". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 13:21 |
|
||
|
Нужна помощь в лучшем выборе схемы БД для агентства недвижимости
|
|||
|---|---|---|---|
|
#18+
В стартовом посте почему-то не сказано, что кол-во возможных характеристик объекта все равно будет расти. Упомянута только малая часть. Поэтому фикс. поля или добавление полей по мере надобности - технологический тупик. Нужен EAV кароч. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2016, 16:36 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1540311]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 514ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...