我是数据库管理系统的新手,我有一个问题...... 让我们说我设计了员工关系/表。在员工关系中,有一个名为" Pay"的列。有些工作人员没有工资,所以我的问题是我应该输入一个" NULL"或" 0"?两者都有效但哪一个更好?
答案 0 :(得分:3)
你明显有一个“不适用”的案例,这是根据你自己的句子“有些工作人员没有工资”。
对“不适用”使用NULL比将其用于“[适用但未知]”更糟糕。 “未知”是SQL 用于它用于“未知”的“你将会受益”,即使只是在没有招致所有惩罚的意义上,如果你将SQL倾倒在你身上做理论上合理的事情,分成两个表。
假设 的某个人确实有薪水,但该付款本身是未知的。你是如何记录这一点并将其与真正没有报酬的人区分开来的呢?
答案 1 :(得分:1)
NULL :
0 :
对于您的问题, 0 和 NULL 具有相同的含义。 0 表示工作人员来支付行动,但他/她已支付 0 (可能在某些文本框或组合框中,他/她选择0)。
但是, NULL 意味着他/她没有来支付。也许在接下来的几天他/她会来支付一些钱。因此 0 与 NULL 具有不同的含义和信息。
答案 2 :(得分:1)
NULL和零有不同的含义。考虑平均工资。我们有6个人,工资为1,2,3,0,0和0.平均工资是1(6除以6)。
或者我们有6个人有薪水1,2,3,NULL,NULL和NULL。平均工资是2(六除以三)。在你的案例中哪个答案更有意义?
答案 3 :(得分:0)
取决于您想要表达的内容:
BIT
或TINYINT(1)
且值为0或1 NULL
是个不错的选择