设计/理论:如何为多个用户设置默认值?

时间:2016-02-24 18:31:39

标签: database

我有一个用户表。然后是产品类型表,每个用户都可以输入/编辑/删除自己的产品类型。他们只能看到自己的产品类型。

但我希望每个人都有一个默认的'未知'产品类型,不能删除。

我想我有两种方法可以做到这一点。

1)使产品类型表的第一行“未知”,然后为每个用户返回该值。但是编写永远不会删除第1行的查询。

2)在每个用户创建时添加一个“未知”行,并添加一个标记它的“可删除”列。然后在每次删除时检查一下。

由于某些原因,选项1在我的脑海中更有意义。这样做是否还可行?或者从设计方面来看,选项2更好吗?

由于

编辑: 澄清了只有一个用户表和一个产品类型表。我希望每个人都有默认的产品类型'未知'

1 个答案:

答案 0 :(得分:0)

由于您无法让用户删除ProductTypes,因此您的ProductTypes表目前必须如下:

ProductTypeId | Name | OwnedByUserId

在这种情况下,我倾向于在选项#1上做一个小变体:创建一个UserId = 0作为"系统" | "默认" | "共享"用户,让他们拥有"未知"产品类别。您可以免费获得删除保护(因为它是另一个用户),但在检索时仍需要联合。

如果您想稍后添加其他默认值,那么您只需使用"默认"用户。

如果您想稍后切换到选项#2(也许您希望它们能够立即删除),您可以使用"默认"用户作为模板,可以轻松回填现有用户。

相关问题