我应该使用关系数据库模式(3NF)来设计Skygear的数据存储吗?
例如,我必须使用包含用户的用户组,下面是A还是B?
一个。
B.
我认为我应该有以下的结果时,最终传递到应用程序。
{
"groupName":"Group A",
"groupId":"G123",
"administrator":[
{
"userId":"U123"
},
{
"userId":"U456"
}
],
"creator":{
"userId":"U123"
},
"member":[
]
}
发布于 2017-02-20 02:56:17
3NF有利于数据的完整性。每个人都喜欢数据完整性,但在设计应用程序时,它可能并不总是第一优先。
在您提供的情况下,如果更改了Group,我可能会选择A.B要求更新所有的groupName。
除了考虑数据如何传递到应用程序之外,还要考虑如何更新和创建?
什么时候打破3NF的天窗?
组内没有用户。
在3NF中,您可能会使用聚合函数。Skygear还没有提供它,常见的方式是将user_count列添加到group记录中。并在添加/删除用户时更新该号码。
发布于 2017-02-20 02:55:50
3NF的应用。
虽然天窗不支持连接表。它具有使用外键的记录关系数据类型。(虽然只有一个级别)
https://stackoverflow.com/questions/42293743
复制相似问题