允许NULL或创建未经授权的用户

时间:2012-10-31 00:39:46

标签: database database-design null foreign-keys

我正在开发允许用户从注册帐户或匿名发布的Web应用程序。我应该在NULL表的UserId列中允许Post还是创建未经验证的User并为未注册的用户引用其ID?


未验证用户

用户

| UserId | Name       |
+--------+------------+ 
| 1      | Unverified |
| 2      | Real User  |

发表

| PostId | UserId | Post           |
+--------+--------+----------------+
| 1      | 1      | Blah blah...   |
| 2      | 1      | Blah blah...   |
| 3      | 2      | Blah blah...   |


- VS -

允许NULL

用户

| UserId | Name       |
+--------+------------+ 
| 1      | Real User  |

发表

| PostId | UserId | Post           |
+--------+--------+----------------+
| 1      | NULL   | Blah blah...   |
| 2      | NULL   | Blah blah...   |
| 3      | 1      | Blah blah...   |

1 个答案:

答案 0 :(得分:0)

通常认为好的做法是不依赖于NULL来表示意义;我可能会使用0或1来表示匿名用户。搜索也更容易;您不必在IS NULL或=之间切换,具体取决于您是否正在搜索匿名用户或真实用户。