在 SQL 中的条目之间进行选择

Expressing a choice between entries in SQL

我想在 SQL 中的条目之间做出选择。

假设处理问题。希望 天才 能帮助我们为他们找到很好的解决方案。这些解决方案有的好,有的不好。因此,一个人 必须选择最适合他需要的

为了表达这个选择,我找到了两种方法:

1) 在 solutions table 中使用名为 is_chosen 的布尔字段。如果选择了解决方案,则该字段设置为 true。

2) 在问题解决方案table之间使用第二个关联。默认情况下,这个额外的外键设置为 null,因为尚未选择任何解决方案。这允许一个问题只有一个唯一的解决方案,但暗示两个实体之间存在另一种关联。

在您看来,这两种选择中哪一种最具成本效益?

我会选择第一个。为什么?第一,因为第二种解决方案创建了一个循环引用,阻碍了您使用 sql 服务器内置的 pk/fk update/delete 功能。如果您希望使用 ORM,它们不支持循环引用。第二,因为现实生活中的问题很少有一个最佳解决方案。天才会想出很多解决方案,并且能够 mark/rate 这些解决方案的标准会有所帮助。三、成本效益……你指的是读取数据还是写入数据的成本效益?这是一个权衡。 SQl 引擎非常智能,除非您计划在表中拥有超过 1 亿行并且不打算维护索引,否则无论是读取还是写入,差异都不会很明显。