我在表设计上需要一些帮助,不确定什么是最佳选择。基本上,我需要存储谁都有权使用任何特定资源。资源可以由不同类型的实体及其实例使用。例如,这里是表示相同内容的简单方法
我有两种不同类型的Entity,EntityType1和EntityType2 (在我的情况下,这应该是一个很小的数字,不超过10个)
每个实体可以有多个实例,我们可以识别它们 带有EntityId
我们可以有不同的资源类型R1,R2,R3..etc
每种资源类型可以有多个实例
还有另一个要求,我可以说所有特定类型的实体都可以访问一个特定的资源实例。类似于EntityId列中的*。我还将在entityId上具有索引,因此只想将其保留为INT类型。请注意,我可以同时输入所有实体和特定实体。
我可以想到两个选择
EntityType = 'EntityType1' and (EntityId = 1 or EntityId = 0)
有人可以告诉我在这里或其他建议中哪个选项更可取,我更倾向于选项2,因为我们不需要在表中存储一些无效值来表示某些东西。
答案 0 :(得分:0)
您应该有一个实体表,其中似乎有EntityId
和EntityType
的列。
您应该有一个资源表,其中包含ResourceId
和ResourceType
。
然后,听起来您想要两个额外的表:
我将从这组关系开始。在表中使用通配符可能导致join
出现or
种情况,这实际上会使速度变慢。