0

我正在创建一个属性搜索/比较网站。我需要帮助创建存放数据的 mysql 表。

我不确定我需要多少表以及列标题应该使用什么。

我希望网站尽可能准确和完整。

我有了创建这个网站的想法,因为我目前正在寻找住所,搜索条件非常简单,但是房产比较网站没有关于我正在搜索的房产的完整/准确数据。

我不知道表格需要如何“标准化”,例如我可以:

表:属性,字段:id,address_id,卧室,浴室,车库,花园。表:地址,字段:address_id、address_line_1、address_line_2、address_line_3、城镇、城市、邮政编码。

但是我是否需要详细介绍房屋内的每间卧室并指定其尺寸等。

如果有人有任何建议,无论多么小。我真的很感激。

4

2 回答 2

1

对于房子的任意属性,您可以为所有人准备一张桌子。

CREATE TABLE `property_prop` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`properties_id` INT UNSIGNED NOT NULL ,
`name` VARCHAR( 32 ) NOT NULL ,
`value` VARCHAR( 64 ) NOT NULL ,
PRIMARY KEY ( `id` ) ,
INDEX ( `property_id` )
) ENGINE = MYISAM

INSERT INTO property_prop (properties_id,name,value) VALUES (100,'Spacing','100');
INSERT INTO property_prop (properties_id,name,value) VALUES (100,'Rooms','4');
INSERT INTO property_prop (properties_id,name,value) VALUES (100,'Description','This is a nice house. ;)');

//Get a list of all properties for house with id 100.
SELECT name,value FROM property_prop WHERE properties_id=100;
于 2011-08-21T13:28:25.840 回答
0

为了在现场进行良好和快速的搜索,最好的方法是独立的搜索服务器,如 SOLR 或 Sphinx。关于你的问题:

mysql解决方案。

  1. 像您描述的那样创建表。
  2. 为每个字段以 xml 格式存储数据。例如,对于野外浴室,您可以创建像

    <rooms number="3"> <room length="5" width="10"> <room length="7" width="9"> <rooms>

  3. 通过 mysql 函数 ExtractValue() 访问某些字段中的特定值。请参阅http://dev.mysql.com/doc/refman/5.1/en/xml-functions.html
于 2011-08-21T15:52:40.610 回答