一个关于数据库设计的问题------------

失落的神庙 2016-06-14 02:33:49
想做一个类似如下的东西

xx小区--a区--a3栋--1单元--5楼--505

那么这种结构就用
选小区--选区域--选楼房--选单元--选楼层--选房号

那么问题来了
xx小区--b18座--2211房

这样的话就尴尬了

我目前想法是这样的
表1 存储选取的各层次数据如 (真实设计肯定会用id代替小区)
id 小区 层次名
1 xx小区 区域
2 xx小区 楼房
3 xx小区 单元
4 xx小区 楼层
5 xx小区 房号

表2 存储每个小区的房源 如
id 小区 层1 层2 层3 ...(10层)
1 xx小区 a区 a3栋 3单元...
2 xx小区2 b10座 1101
3 xx小区3 ... ...

这样设计用起来挺麻烦。各位大哥大姐 有没有好点的方法或者思路。

谢谢。
...全文
133 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落的神庙 2016-06-14
  • 打赏
  • 举报
回复
引用 4 楼 xdashewan 的回复:
你这问题主要是由于无法预知小区内部结构,所以无法使用固定的表结构来表达对象。你现在的问题使用上问题不大,但如果今后扩展和重新排列层次就会有些麻烦。我的建议是直接改成BOOM的树状结构,举个例子 id name pid 1 小区a 0 2 a区 1 3 a3栋 2 4 小区b 0 5 b10座 4 6 1101 5 其他所需字段你可以自行添加
嗯。 3q。
xdashewan 2016-06-14
  • 打赏
  • 举报
回复
你这问题主要是由于无法预知小区内部结构,所以无法使用固定的表结构来表达对象。你现在的问题使用上问题不大,但如果今后扩展和重新排列层次就会有些麻烦。我的建议是直接改成BOOM的树状结构,举个例子 id name pid 1 小区a 0 2 a区 1 3 a3栋 2 4 小区b 0 5 b10座 4 6 1101 5 其他所需字段你可以自行添加
失落的神庙 2016-06-14
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
动态的可以参考menu的方式,即id,parentid的方式,每条记录包含自身是什么类型,这样一旦层次发生变化,你不需要动表结构,而且组织成一个地址也有一定的复杂度 当然你这种方式的话,因为格式固定,查询什么的都很简单,坏处就是一旦层次变动,你整个代码、数据库都要跟着动 实际当然看你业务,如果你的楼房层次就这样,不会发生变动,那么你这种方式可以接受,编码工作量也会小很多
谢谢,受教。
  • 打赏
  • 举报
回复
动态的可以参考menu的方式,即id,parentid的方式,每条记录包含自身是什么类型,这样一旦层次发生变化,你不需要动表结构,而且组织成一个地址也有一定的复杂度 当然你这种方式的话,因为格式固定,查询什么的都很简单,坏处就是一旦层次变动,你整个代码、数据库都要跟着动 实际当然看你业务,如果你的楼房层次就这样,不会发生变动,那么你这种方式可以接受,编码工作量也会小很多
失落的神庙 2016-06-14
  • 打赏
  • 举报
回复
如果用数据来存这些层次会不会好点?不过怕不好查询。

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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