Ali*_*Ali 5 php mysql database-design normalization
我在修这里.我正在建立一个家庭预订网站,客户需要一个过滤搜索工具,允许访问者根据标准搜索和过滤属性.问题是他的标准列表非常长,主要是布尔值和可计算的值,例如:
附浴室,阳台,吸烟,酗酒,最多人数,有线电视,互联网,铺有地毯,空调,中央供暖,客房服务等,等等...
我正在考虑为这些中的每一个创建一个字段,但是偏好的数量甚至可能会增加.我抛出了将序列化对象中的每一个存储为字符串的想法,因为使用SQL查询进行搜索是不可能的.除了为每个首选项设置单独的字段外,我还有其他选择吗?
谢谢.我正在使用PHP MySQL.
你有一个多对多的表,将属性的ID绑定到具有属性的引用表吗?查找表将包含属性所具有的每个属性的行?
主表
ID PropertyName OtherCols
10 CottageA Stuff
20 CottageB OtherStuff
属性
100吸烟
200空调
300客房服务
400电视
500互联网
查找表
ID AttributeID
10 100
10 200
10 300
20 100
20 400
20 500
几年前,我对酒店目录进行了完全相同的搜索。我们为此使用了 BitMask,例如我们存储了代表所有可能值的单个数字,例如
\n\nHotelTable \nID Name \xe2\x80\xa6 Features\n 1 SuperHotel \xe2\x80\xa6 5\n\nFeatures\nID Name\n 1 Balcony\n 2 Shower\n 4 Barrier-Free\n 8 Whatever\n \xe2\x80\xa6 \xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n\n在上面的例子中,超级酒店将有一个阳台并且是无障碍的(4+1)。
\n\n虽然这很有效,但我不确定我是否会再次以这种方式处理它。基本上,所有这些功能都与标签相同,因此您也可以使用已知的方法来创建标签表。
\n