2015-01-13 4 views
0

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

Страница будет о домах/квартирах и т. Д., Которые вы можете арендовать (например, в неделю с семьей или в выходные с друзьями).

Пользователь может зарегистрироваться и добавить house (он может быть расширен с возможностью добавления дополнительных домов). Так что я пришел с этой базой DB структуры:

table users 
----------- 
user_id 
user_email 
user_password 


table house 
----------- 
house_id 
user_id 
house_name 
... 
house_num_bedrooms 
house_description 

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

Теперь пользователь должен иметь возможность выбрать объекты, часть из списка:

Category: kitchen 
- Microwave  [yes|no] 
- Coffee machine [senseo|2 pot|3 pot] 
- Water boiler [yes|no] 
- Refrigerator [yes|no] 

Category: bedrooms 
- number of bedrooms   [xx] 
- number of 1-person-beds  [xx] 
- number of 2-person-beds  [xx] 
- number of 2-person boxspring [xx] 

За объекты возможность перечислена, поэтому некоторые объекты либо есть, либо нет, другие этого количества объектов (например, 26 спален с 20 односпальными кроватями и 6 кроватями 2 человека).

В начале у меня уже будет хороший список объектов (около 100).

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

Как вы подходите к этому?

ответ

0

Что касается объектов: вам нужна одна таблица, в которой хранятся все объекты - идентификатор и имя (возможно, вместе с текстовым полем, которое содержит дополнительную информацию об этом объекте, например 2 евро/день), и таблицу соединений , который объединяет дома и объекты. Эта таблица также может содержать поле «номер» и поле «затраты», хотя последнее является проблематичным, поскольку некоторые средства стоят на день, например, городской налог, а некоторые из них находятся на постоянной основе, например, окончательная очистка. Это остается как упражнение.

Как бы то ни было, я просто смотрел квартиры в аренду во Флоренции, поэтому я могу легко привести вам пример.

APARTMENTS 
id 
daily price 
name 
address 

FACILITIES 
id 
name 
extra details 

FACBYAPART // join table, find your own name 
apartment 
facility 
quantity 
cost  

пример данных:

Квартиры - 1, 82, Зеленый рис; 2, 95, Belfiore 2

Услуги - 1, Заключительная уборка; 2, Wi-Fi; 3, односпальная кровать; 4, двуспальная кровать

FacByApart - 1,1,1,40; 1,2,1,0; 1,3,1,0; 1,4,1,0; 2,1,1,0; 2,2,1,2; 2,3,2,0; 2,4,2,0.

Данные показывают, что квартира Green Fig имеет заключительную уборку (за 40 евро), бесплатный Wi-Fi, одна односпальная кровать и одна двуспальная кровать. Belfiore 2 имеет бесплатную заключительную уборку, wifi стоит 2 евро, две односпальные кровати и 2 двуспальные кровати.

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

0

Здесь вы идете для проектирования схемы по прецеденту для ваших требований:

APARTMENT 
id:1;2 
name:Valley View;City Center 
address: Narayan Rd 50;Kanti Rd 30 
daily price: 40;60 

FACILITy 
id:1;2;3;4;5;6;7;8 
name:Double Bed;Kitchen Set;Double Bed BoxSpring;Car;Movie Theater;Refrigenator;Water boiler;Final Cleaning 
remarks:;All kitchenware(refrigenerator, water boiler,cofee machine, microwave) Available;;;;;;; 

APARTMENT_FACILITy 
id:1;2;3;4;5;6;7 
apartment_id:1;1;1;1;2;2;2 
facility_id:1;2;4;5;1;6;7 
quantity:2;1;1;1;1;1;1 
cost:0;0;20;50;0;0;0 
cost_frequency_days:0;0;1;7;0;0;0 

APARTMENT_USER 
id:1;2 
email:[email protected];[email protected] 
password;secret1_hash;secret2_hash 

RENTAL_DETAILs 
id:1;2;3;4 
apartment_id;1 
arrival_date:2015-01-10 
departure_date:2015-01-13 
apartment_user_id:1 

соображениях:

Referred Apartment for both house and apartment. Users table holds email for username and password for the credentials, you can extend other fields as per your requirements. Add additional fields in other tables as per your requirements. 

case #1-You have Valley View apartment at Naryanan Rd 50 and cost per day is $80, it offers 2 Double Beds and Kitchen. Additional Cost: Car - $20/day and Movie Theater $50/Week 

case #2-You have City Center apartment at Kanti Rd 30 and cost per day is $30, it offers 1 Double Bed, Refrigenator and Water boiler. 

Case #3-User [email protected] stay in Valley View Apartment for 4 days(2015-01-10 to 2015-01-13)=>40+80(Car-20X4days)+50(one week charge). 
Смежные вопросы