2016-12-04 7 views
0

Я разрабатываю базу данных mysql для приложения php, которое имеет два раздела: добавление рекламы для таких свойств, как домашние магазины .., и поиск их.Дизайн базы данных для приложения php реального недвижимого имущества, таблицы имеют слишком много столбцов

У меня есть таблицы для users, addresses, ads...

Проблема заключается в properties таблице. Я не знаю, должен ли я разбить это на несколько таблиц или у меня должна быть одна большая таблица? Столбцев слишком много. У меня есть до 100 полей, например:

Тип недвижимости: house, shop, fields... В каждом типе недвижимости есть несколько полей, таких как номера для спальни и другие поля, такие как кондиционер, оборудование, оборудование. Что мне делать? Должен ли я делить этот стол на меньшие таблицы?

+0

Я думаю, что хороший дизайн в вашем случае - это использовать «мост» столетней! –

ответ

1

Я бы рекомендовал использовать таблицу bridge. Вы можете увидеть на этом Link, что такое таблицы моста.

В общем, у вас есть 2, которые всячески манипулировать как схема-дизайн:

  1. используя только одну таблицу (с именем property) и добавьте объемные данные. В этом случае поля - это ваши функции (например, air_conditioning, номера спальни и т. Д.). Определив это поле как логическое и обозначая 1 для «Свойство имеет эту функцию» и 0 для «Свойство НЕ имеет этой функции», вы можете делать то, что хотите.

  2. Использование простой таблицы bridge, которая представляет собой таблицу, которая соединяет таблицу property с features, которую вы должны определить для объектов свойств.

Фактически второй подход является применимым подходом в проектировании базы данных. Потому что он масштабируемый, то есть каждый раз вы можете добавлять каждую новую функцию!

Надеюсь, что это объяснение вам поможет!

1

Я бы предложил таблицу properties, таблицу features и таблицу property_features.

Ваш properties таблица будет иметь основную информацию - адрес, распечатка владельца и т.д.

Ваш features таблица будет таблица, в которой каждая строка представляет собой возможный признак - air_conditioning, rooms, bathrooms, gold_plated_toilets и т.д.

Ваш property_features таблица будет список property_id, feature_id и опциональный value поле (которое может быть true/false значения air_conditioning или что-то вроде rooms это может быть числовое число).