高分 请教表设计的问题

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数据的数量很多的时候是否会造成性能的问题。
...全文
142 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
可以

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧