【问题标题】:Does mandatory in MySQL Workbench mean, that referencing field cannot be NULL?MySQL Workbench 中的强制是否意味着引用字段不能为 NULL?
【发布时间】:2011-10-16 04:07:42
【问题描述】:

我正在设计数据库,我很好奇mysql工作台中的强制复选框是否意味着该字段应该为空或者在这种情况下强制是指什么?

以后如有必要,我将附上出现此问题的这张表格的图片。

向每一个人寻求帮助。

UPD:
我必须说,在我生成模型 SQL 并查看两个表之后,我没有看到任何不同。我开始认为,这个强制选项只是在视觉上显示,但在功能上它没有任何意义。

如果我错了,请帮助。又是坦克。

【问题讨论】:

  • ...从模型中创建一个数据库并亲自查看?
  • 这实际上是个好主意。会试试的。

标签: mysql mysql-workbench


【解决方案1】:

好的,我找到了。

假设您有一个名为User 的表和另一个名为Address 的表,并且您想在它们之间建立关系。该示例可能如下所示:

用户
id
名称

地址
id
user_id
街道

所以你在Address 中有一个外键,用于User。如果做这个关系,所有字段都是必填的,所以user_id是主键字段不为空,Address-id也一样,但Address-user_id是什么?它真的是Address 中主键的一部分吗?不,它不能帮助您识别此表中的一行。所以Address-user_id 可能是空的,也许你只有一个Address 或者表Address 甚至被表公司引用。

问题是,“参考表”一侧的强制复选框仅用于视觉效果,相反,“参考表”一侧的复选框使该字段可以为空或不为空。

如果是必填项,则 Address-user_id 字段永远不能为空。如果不是强制的,则该字段对于一行数据可以为空,不影响任何约束。

【讨论】:

  • “视觉效果”,这是一个非常好的说法,说 MySQL Workbench 在这里真的很烂。经过几个小时的谷歌搜索,我找到了这个胎面。我是否还应该说所有“强制性”的一对一或多关系 Wbnch 显示(对于......嗯......“视觉效果”)实际上是一对零或多? RDBMS 中没有强制父母至少拥有一个孩子的机制。感谢这个帖子,伙计们......
【解决方案2】:

我得出的结论是,这只是一种视觉效果,表明关系是强制性的。该选项无论如何都不会影响生成的 SQL 代码。

【讨论】:

  • 没错!经过几个小时的困惑,我得出了同样的论点。 mysql 本身,是否完全支持这个概念?
  • 你错了,如果你把Referenced Table设置为必填,那么referenced ID设置为NN(not null)。
【解决方案3】:

很可能,这意味着字段值不能为NULL。我说最有可能是因为我在 MySQL Workbench 的任何地方都找不到“强制”这个词。

【讨论】:

  • 当您创建一个房地产并双击它时,您可以在第二个选项卡中找到它。也许现在会更清楚。
猜你喜欢
  • 2014-08-15
  • 1970-01-01
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2018-07-25
  • 1970-01-01
  • 2015-06-21
相关资源
最近更新 更多