我正在建立一个数据库,并有一个如下结构的表
Att1 Att2 Att3 ....
User1
User2
User3
....
我希望每个属性(Att1,Att2,Att3,...)都附加一个布尔变量。如下所示:
Att1 No
Att2 No
Att3 Yes
... ...
每个属性都是来自用户的数字分数(列表首选项),但我想标记每个属性是否真的重要。是否有处理此类依赖的标准方法?谢谢!
答案 0 :(得分:0)
哦,如果我们可以在表格中嵌入记录,那就太好了。但是,标准SQL和大多数数据库不支持此功能(尽管有例外)。
我会使用一致的命名约定,发明像“IsImportantAtt1”和“IsImportantAtt2”这样的字段。当我这样做时,我也有一个约定,即所有“Is”变量只接受“Y”或“N”的值。如果我想在输出中看到“是”和“否”,那么我使用视图进行转换或在应用程序层中进行。
答案 1 :(得分:0)
我觉得Attribute
实际上是一个实体调用ListingPreference
,其中包含Id
个密钥,2个属性,Score
和IsImportant
以及一个FK致User
的{{1}}。
UserID
currentley只有一个User
键。
简而言之,属性没有属性,这意味着你的模型是错误的。
答案 2 :(得分:-1)
如果属性本身不重要,属性的分数是否重要?如果没有,您可以简单地使用NULL分数表示该属性不重要的约定。
否则,您可以为每个属性列添加另一个(bool)列:
Att1 Important1 Att2 Important2 Att3 Important3 ....
User1
User2
User3
....
可以简单地从USER_ATTRIBUTE表中省略一个不重要的属性(假设“no”是我在顶部的问题的答案)。