我们现在的逻辑是这样的:
有若干房间,房间中可以放置若干桌子,桌子上面可以放若干杯子, 每个房间中可以放多种类型的 table, 每种类型的table 数量可能是从1 -- N, 每张 table上可以放置多种类型的杯子,每种类型的杯子数量是从1 -- N
数据量大约是: room1 -- room100, table_type1 -- table_type10000000(一千万), cup_type1 -- cup_type100000000(一亿),
现在我们的需求是需要以不同的角度来查看数据,比如
1 查看 room20 中放了那些 table, 这些 table 上边又放了那些 cup, 并且数量是多少
2 查看 table_type231 分布在那些 room 中, 并且table 上边的cup 的类型和数量
3 查看 cup_type123 分布在那些桌子上以及那些房间中,数量是多少
并且考虑到可能会修改物品的放置情况,比如说 关闭 room20, 那么 room20 中所有的 table, cup信息都需要删除,或者不删除只是做个标记。 或者 从 room3 中 移除 table_type100。 或者将 table_type20 添加到 room5中。 或者在所有的table_type100上添加cup_type100
如果要满足以上的需求应该怎么设计表结构最灵活高效? 希望各位能多给些建议
------解决方案--------------------
房间表,桌子表,杯子表.
感觉楼主的查询没有什么特殊的,表结构基础就那样了.
------解决方案--------------------
基础表
房间 room 表,记录房间信息
桌子 table 表,记录桌子信息
杯子 cup 表,记录杯子信息
关联关系表
主表 room - table 关系表 记录桌子所在房间 加主键列
明细表 table - cup 关系表 记录杯子所在桌子 加一字段对应主表主键
------解决方案--------------------
2张Type表,tabeltype、cuptype。
3张对象表room,table,cup
2张对应表room对象 vs table对象 ,table对象 vs cup对象(可以有删除标记字段)
这只是表设计,不考虑大数据量的设计。