高分 请教表设计的问题

linyong 2003-05-07 08:16:48
目前有表city(市)(id,name),area(区)(id,name),street(街)(id,name),
市包括区,区包括街,街中存在单位com(单位)。
请教com表该如何设计合理。
功能是需要查询市区中某条街上的所有单位,或查询市区中的所有单位的情况,
我是这样设计的创建表
city_area(cityAreaid,cityId,areaID),和表ciry_area_street(id,cityAreaStreetId,cityAreaID,StreetID),
com(id,name,cityAreaStreetId,desc)
请问这样设计是否合理,如果area,street数据的数量很多的时候是否会造成性能的问题。
...全文
80 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
linyong 2003-05-10
继续 以上的问题,--设计
city(市)(id,name)
area(区)(id,name,cityid)
street(街)(id,name,areaid)
com(单位)(id,name,streetid)

请教如果,cityId 作为外键,areaid也作为外键
请教做外键的好处和 坏处,另,做外键是否一定要做索引呢。
回复
joygxd 2003-05-09
具体问题具体分析,若有跨区等,可再多加一个附属ID
回复
joygxd 2003-05-09
大力的应该比较通用,我们也是这样的
回复
linyong 2003-05-09
讨论 若存在跨区的情况 该怎么处理。
回复
rdsdh 2003-05-08
pengdali(大力) 的结构比较好。我最近的系统也是这样设计的。
回复
SmileSkyNet 2003-05-08
1.table city_area:
cityId
areaID
areaName
----------------------
2.Table ciry_area_street
areaID
StreetID
StreetName
---------------------
3.Table com
StreetId
comID
comName
回复
erigido 2003-05-08
认真学习
回复
pengdali 2003-05-08
--设计
city(市)(id,name)
area(区)(id,name,cityid)
street(街)(id,name,areaid)
com(单位)(id,name,streetid)


--连接所有的表:
select * from city
join area on city.id=area.cityid
join street on area.id=street.areaid
join com on street.id=com.streetid

---你可以根据需要在后面加上你的条件
回复
leimin 2003-05-08
你的数据库对跨区的问题如何处理?
STREET有可能跨区么?
com(id,name,cityAreaStreetId,desc,option)

增加一个OPTION字段,来确认一下是否跨区.



ciry_area_street(id,cityAreaStreetId,cityAreaID,StreetID)
streeid是何意思不是很明白?
是否可以和COM表合并.
回复
linyong 2003-05-08
up似乎不对,city(市)与area(区)是一对多得关系。
回复
fallstone 2003-05-07
应该没问题吧。你这样层层嵌套,应该是简化的了。
关系数据库嘛,呵呵,没联系就不用关系数据库了
回复
caiyunxia 2003-05-07
可以
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-07 08:16
社区公告
暂无公告