我在写一个手机购物网的网站,就跟18900一样的.
在过程中出现了如下问题:
product表(手机表)有如下字段:p_id,p_name,p_gongneng(手机功能)等
手机表的p_gongneng字段里面肯定很多的内容,而里面的内容我想从另一个表就是功能表中获得,
功能表gongneng(id,name)因为这样我能从功能表中选择各种内容添加到手机字段的p_gongneng中,
在这里我迷惑了,p_gongneng字段怎样才能取得功能表中的多个name值呢,
查了一些资料,网上说在功能表中添加字段p_id,但是我的页面有个查询功能,我想根据用户输入的功能能把对应的手机搜出来,
是不是应该用到一对多的设置,而应该怎么设置呢,请教各位老师:
就是如下网站实现的搜索功能:
http://www.18900.com/filter.php
他能够根据不同的要求,例如网络不同,价格不同,应用不能,查询出内容来,我不知道怎么设计这样的数据库,请教各位了,感谢!

解决方案 »

  1.   

    参考方案:
    设计手机表、品牌表、网络表、价格表、外观表和应用表,表结构如下:
    band(品牌表):band_id(品牌ID),band_name(品牌名称)
    network(网络表):network_id(网络ID),network_name(网络名称)
    price(价格表):price_id(价格范围ID),min_price(最低价格),max_price(最高价格)
    application(应用表):application_id(应用ID),application_name(应用名称)
    apperance(外观表):apperance_id(外观ID),apperance_name(外观名称)
    mobile(手机表):mobile_id,mobile_name,band_id,network_id,price_id,application_id,apperance_id
    查询语句参考:
    select m.mobile_name,b.band_name,n.network_name,p._min_price,p.max_price,a.application_name,
    ap.apperance_name
    from mobile  m inner join band b on m.band_id=b.band_id 
      inner join network n on m.network_id=n.network_id
      inner join price p on m.price_id=p.price_id
      inner join application a on m.application_id=a.application_id
      inner join apperance ap on m.apperance_id=ap.apperance