gpt4 book ai didi

mysql - 两个表上的许多 boolean 值

转载 作者:行者123 更新时间:2023-11-29 03:44:46 24 4
gpt4 key购买 nike

使用 Rails 2.1 和 Mysql。

我有一个公司模型,其中有_很多公司

当然还有公司模型,它属于公司

我需要在这两个表中添加相当多的 boolean 列,但这感觉真的不对。每个表都有相同的 boolean 值,我们将首先检查公司以查看其是否为真,然后是公司。所以,我可以看到这些选项:

  • 将 boolean 值添加到每个表中。我想这是最简单的,但感觉真的很多余。

  • 创建一个额外的表,名称类似于“boolean_options”,属于公司和企业。每个 boolean 值都添加到该表中,然后连接到适当的模型。

  • 使用类似于 has_many_booleans gem 的东西,这意味着我向每个表添加一列( boolean 值)并在我的代码中处理数据。这似乎是最不明显的解决方案,但对我来说感觉更优雅,尤其是在需要向这些表添加更多 boolean 值时。

处理将出现在多个表中的 boolean 值的最佳方法是什么?

最佳答案

答案可能更多地取决于您的整体概念。对于每一个真/假数据,问问自己它与模型本质的联系有多紧密。每个位在模型实例中被引用或在搜索中使用的频率。那些紧密相连的可能属于模型;那些较少的可能更好地分组在其他表中。

示例:在现实世界中,公司是公司的一种类型,并且共享许多Company属性;这些属性可以存储在 Company 表中,可能带有 is_a_corporation 标志。

如果公司具有独特的属性,例如拥有公司的能力,这些功能和属性应该在 Corporation 模型中。

作为位的 boolean 值:我不认为在一个模型中有很多 boolean 值属性有什么问题,但我同意在表中包含所有这些 boolean 值列似乎不雅。我查看了 has_many_booleans gem,它确实为模拟位运算和掩码提供了一些有趣的机会,这些来自嵌入式软件的世界,对我来说很有意义.

四处查看,我发现 Postgresql(我选择的数据库)提供了 bitstring 数据类型,并提供了过多的实际按位运算你想要多少位,只使用一列来表示你的所有 boolean 值,这对我来说似乎非常酷。缺点是您必须配置列并在 native SQL 中执行操作。

关于mysql - 两个表上的许多 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7630475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com