gpt4 book ai didi

ruby-on-rails - 具有许多列的 ActiveRecord 表 : is there a better way?

转载 作者:行者123 更新时间:2023-12-05 06:43:45 25 4
gpt4 key购买 nike

我想知道我是否适本地使用表属性来描述对象,或者对于某些类型的属性是否有更有效和更可取的方法。

我有两个 ActiveRecord 表,foodslists。两个表都有很多列,因为每个对象都有很多属性(卡路里、脂肪、蛋白质等)。

除了这些内在特征外,我发现自己还在表格中添加了属性列,这些属性表示对象在组中的成员资格或用户定义的属性。

群组成员数据 表明食物是甜点还是肉类,以及其他类别。为此,我有包含二进制或分类(字符)数据的列。

用户定义的属性数据包括列表的“最大卡路里”或“最大脂肪”属性。如果我有一个“最大”列对应于每个“总”(例如,“最大卡路里”和“总卡路里”),这当然会使列数加倍。

甜点和肉类是固有属性,因为它们不能被用户更改,但似乎可以更有效地用食物 ID 数组或哈希来表示它们。用如此多的数据点(和列)来表示这种简单的分类似乎是多余的,而且我的表太大了。我没有为组成员数据切换到数组的原因是因为我喜欢对象本身当前如何访问这些数据。它直观、集中,而且看起来不太容易出错。

我不知道我还能如何管理用户定义的列表“最大值”,也许这种列/属性的扩散是最好的选择。

对于我的方法的任何建议或评估以及可能替代方案的建议,我将不胜感激。

最佳答案

您可以使用序列化并将文本对象存储在数据库中,但是当您选择它时将再次作为 HASH 或 ARRAY 访问,这可以为您解决问题而不是复制字段将其存储为 HASH 然后从中读取.

看看这个:

Rails: Serializing objects in a database?

http://apidock.com/rails/ActiveRecord/Base/serialize/class

关于ruby-on-rails - 具有许多列的 ActiveRecord 表 : is there a better way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049550/

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