+ -
当前位置:首页 → 问答吧 → 求前辈们指点,关于数据库设计的问题,在线等。。。。

求前辈们指点,关于数据库设计的问题,在线等。。。。

时间:2011-12-11

来源:互联网

求前辈们给点建议啊,这是我的毕业设计,呜呜呜。。。。


表1:商家表;字段:SJID(商家ID),SJName(商家名称)

表2:分店表;字段:FDID(分店编号),FDAddress(分店地址),SJID(商家ID—外键)

表3:美食表;字段:FoodID(美食ID),FoodName(美食名称),SJID(商家ID—外键)

表4:分店美食配置表:ID(编号),FDID(分店编号—外键),FoodID(美食ID—外键)


——————————————华丽的分割线———————————————————————


我的需求是:我想根据一个地址搜出该地址内的美食。


商家可以新建多个分店,然后把商家所拥有的美食配置给分店(因为有的美食不一定是每个店都有的),美食的地址就会随分店的增加,减少而变换。


我上面设计的表感觉不能实现这个需求,我用了一个配置表,可是这样搜出来的美食会重复出现多次。


小弟跪求,前辈们给点修改建议,为小弟指明方向,谢谢了。。。。

作者: xiaorbc   发布时间: 2011-12-11

前辈们都去睡觉了,呜呜呜。。。

作者: xiaorbc   发布时间: 2011-12-11

SQL code

-- 根据一个地址搜出该地址内的美食。
select c.*
from 分店表 a 
inner join 分店美食配置表 b on a.FDID=b.FDID
inner join 美食表 c on b.FoodID=c.FoodID
where a.FDAddress='[指定的地址]'

作者: ap0405140   发布时间: 2011-12-11

前辈,你好,但是这样的,不提供地址,默认全部显示的时候会有多个相同的美食出现的。我上面的表设计的有问题,前辈能简单的帮我改下么,灰常感谢!!!
引用 2 楼 ap0405140 的回复:

SQL code

-- 根据一个地址搜出该地址内的美食。
select c.*
from 分店表 a
inner join 分店美食配置表 b on a.FDID=b.FDID
inner join 美食表 c on b.FoodID=c.FoodID
where a.FDAddress='[指定的地址]'

作者: xiaorbc   发布时间: 2011-12-11

'不提供地址'的話,就是說要所有美食,直接查詢美食表不就行了.
SQL code

 select * from 美食表

作者: ap0405140   发布时间: 2011-12-11

引用 4 楼 ap0405140 的回复:

'不提供地址'的話,就是說要所有美食,直接查詢美食表不就行了.
SQL code

select * from 美食表

但是,我如果给的是一个比较大的行政区,有几家分店,都在这个行政区里,这个美食就会出现多次,我上面的表设计的好像不对呢。

作者: xiaorbc   发布时间: 2011-12-11

SQL code

select distinct c.*
from 分店表 a 
inner join 分店美食配置表 b on a.FDID=b.FDID
inner join 美食表 c on b.FoodID=c.FoodID
where a.FDAddress='[指定的地址]'

作者: ap0405140   发布时间: 2011-12-11