1. 在之前的设计中,地球号开店服务中的room服务。
room从属于tier,tier->build->vila。但我们发现维持这样的从属关系对运维来说太不可能。原因如下:
- 做法无外乎让运维去搜集全国各地的小区,楼栋,楼层信息,然后做成vila表,build表,tier表,他们之间维持强大的外键关系。这个工程量浩大。对我们不太现实。并且一直对这个设计耿耿于怀。
在昨天(20200425)的思考中,我觉得可以让room从build,tier,vila的依赖中独立出来。room服务直接暴露成一级服务。每个room附加一个addr(房间地址),原来的外键,vila,build,tier,都可以作为"未知",非外键修饰。具体的做法是.
- room表的build字段仍旧是外键,但第一节阶段,我们就让这个外键设为build表专门设计的一个"未知楼栋"表项。同样tier,vila都这样。
room表内部,不再应用slot来表达位置,因为这样就太细节了。而是直接在房物绑定表(rood)里用name字段用字符串表达一下。
- 店长对于自己店里的room具有FULL操作关系。
- 副店长对于自己店里的room具有除了删除和修改关键字段之外的所有操作权限。
- room表和具体人员的可读,可写,可查,可删关系,通过rood表进行,也就是在控制台,允许店长把自己的room权限给分享给其他人只读观看,这也是演示系统的刚需。
2. 查询一个room下的设备和查询rood是两回事,
一个room下最多不能超过100个设备,这也符合显示。所以,getRoom() 也可以。也就是room和它下面的rood是一体的。