该数据库包含物理书架的示意图;这是一个例子:
在允许用户创建原理图的html5画布界面中,架子只是表示为矩形,因此我们的原理图顶行可能是
{ [0, 0, 66, 33], [67, 0, 33, 33] }
所需SQL表示的属性非常简单:用户ID,原理图ID,货架ID。例如,上一个原理图可以属于用户1,是原理图1,并且从左到右,从上到下保持架子1到8。
到目前为止,我最好的选择是有一个货架表:
shelf [integer shelf_id, integer schematic_id, integer left, integer top, integer right, integer bottom]
原理图表:
schematic [integer schematic_id, integer user_id]
但是看起来有点奇怪,因为一个特定的架子只属于一个原理图而且只有一个,它需要一个WHERE查询来从原理图中获取所有架子。同时,如果所有货架都是原理图表的一部分,那么它们如何作为具有单独ID的单个项目存在?
我为这种情况提出了一个更健全的方案吗?
PS:用一个varchar“[left,top,right,bottom]”字段替换顶部,右侧,底部和左侧字段以简化插入会不好或无动于衷?
答案 0 :(得分:0)
如果您希望在不同的架构之间共享货架,则无需将schematic_id
置于货架上。
您只需要一个schematic_shelf
关联表,每个原理图一行,每个架子一行。
这似乎更适合你想做的事情。