Я собираюсь разработать личный проект для целей обучения. Веб-сайт недвижимости, на котором рекламодатели (зарегистрированные пользователи) могут публиковать объявления о своей собственности (квартиры, земельные участки, дома, ...) либо для аренды (на определенный или неопределенный период), либо для продажи. Кроме того, клиенты (посетители) могут искать недвижимость определенного типа для аренды или покупки в определенном месте.
Бизнес правила:
- Пользователь зарегистрирован.
- У пользователя есть одна роль и только одна роль (пользователь, администратор, …).
- Роль принадлежит многим пользователям (роль по умолчанию для каждого пользователя — пользователь).
- У пользователя есть одно местоположение и только одно местоположение (местоположение относится к адресу).
- Местоположение принадлежит многим Пользователям.
- Пользователь имеет много объектов недвижимости (либо для аренды, либо для продажи).
- Собственность принадлежит одному Пользователю.
- Недвижимость принадлежит одному местоположению (местоположение относится к адресу).
- Файл принадлежит собственности.
- Свойство имеет много файлов (в основном изображения).
Я так много искал в Google, видел некоторые модели баз данных на databaseanswers.org, но я m застрял на типе/функциях собственности, я не могу понять это, я не знаю лучшего решения для этого!! Поскольку каждый тип собственности имеет разные характеристики, например, квартира имеет комнаты, ванные комнаты... но земли нет, для земель мы могли бы сказать, что они находятся в городе или за его пределами. городок…
Я хочу сделать эту базу данных более удобной в сопровождении и масштабируемой. Я не хочу, чтобы структура проектирования базы данных вызывала более сложные запросы/код во время разработки.
Я был бы признателен, если бы вы могли дать мне несколько советов по моей «маленькой» проблеме.
Должен ли я разделять Тип каждого Недвижимости на свою собственную Сущность (таблицу), например таблицу Квартиры, Таблица Lands, таблица Houses… Таким образом, я могу прикрепить к ним собственные Features.
Или мне нужно объединить их в одну таблицу "Свойства" со всеми Функциями и иметь другую таблицу "Тип", чтобы связать каждое свойство? к его типу (как в сообщениях и категориях).
Или мне нужно создать четыре таблицы "Свойства" "Тип" "Функции" и сводную таблицу "feature_property" сильный>.
- Недвижимость относится к одному типу (Квартира, Земля, Дом, …).
- Тип имеет много свойств.
- Функция имеет много свойств.
- Недвижимость имеет множество функций.