MySqlDb(v 8.0)的设计:当我决定在表中不加上“Not null”约束时,可能会做出哪些牺牲?

7 浏览
0 Comments

MySqlDb(v 8.0)的设计:当我决定在表中不加上“Not null”约束时,可能会做出哪些牺牲?

我有一个与已经回答的问题相关的问题,涉及到MySql数据库设计。我想知道在表中不给外键设置\"非空\"约束的决定可能会引起哪些问题/牺牲?(正如链接问题中所提到的,我可以在一个表中有多个外键,并且在上传数据时不必总是知道它们的全部)\n这里有一个例子(简化):\n我的数据库中有三个表:\n

    \n

  1. 公司
  2. \n

  3. 投资者
  4. \n

  5. 投资\n投资表中有以下列之一:
  6. \n

\n

    \n

  • 公司外键
  • \n

  • 投资者外键
  • \n

\n问题:\n我想知道当我允许投资者外键的\"空值\"时,对于最终用户(如数据分析师)会有什么后果。\n因此,我认为我的问题最好由Vojta F回答,他从数据库用户的角度向我展示了我的解决方案的利弊。

0
0 Comments

在设计MySQL数据库时,如果决定在表的外键上不加上"NOT NULL"约束,可能会面临以下问题:

1. 空间消耗:使用NULL时所占用的空间非常小,几乎可以忽略不计。

2. 速度考虑:通常情况下,性能方面的考虑并不重要。优化器根据索引列的NULL性质做一些不同的处理,但是你从具有或不具有NULL的好处很可能超过任何负面影响。

3. 一些限制:主键必须包含NOT NULL列。

解决方法:根据上述问题,可以考虑在设计MySQL数据库时,在外键上加上"NOT NULL"约束,以避免可能出现的问题。

0
0 Comments

当在表中的外键上决定不添加“Not null”约束时,可能会出现以下问题:

原因:

- 如果您在上传时不知道外键的值,可以省略“not null”约束。

- 这样做的积极影响是上传新数据更容易,您不必强制插入外键值,只要在连接该列时意识到这一点即可。

- 这样做的消极影响是数据完整性较弱,解决多个表之间的记录会更加困难,而且在连接时必须考虑空值。

解决方法:

- 考虑在外键上添加“Not null”约束,以提高数据完整性。

- 如果无法在上传时确定外键的值,可以通过其他方式解决,例如将外键设置为默认值或采用其他逻辑来处理空值情况。

- 在查询时,必须小心处理可能的空值,以避免产生错误或不准确的结果。

- 当在多个表之间进行连接时,需要仔细考虑可能的空值情况,以确保正确地解决记录。

0