Ruby on rails Rails:在DB中存储阵列与设置关系
设置:有两种型号具有以下属性Ruby on rails Rails:在DB中存储阵列与设置关系,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,设置:有两种型号具有以下属性 人员:姓名、年龄、工作经验、可用日期 工作经历:职位、开始日期、结束日期 然后,我可以做以下事情 Person has_many work_experiences WorkExperience belongs_to Person Q1:可用日期应该是一个属性(日期数组)还是一个孩子(例如,人有很多可用日期) Q2:可以个人有工作经验字段,它只是一个对象数组,而不是DB中的一个单独的表?
Person
has_many work_experiences
WorkExperience
belongs_to Person
Q1:可用日期应该是一个属性(日期数组
)还是一个孩子(例如,人有很多可用日期
)
Q2:可以
个人
有工作经验
字段,它只是一个对象数组,而不是DB中的一个单独的表?- 我是否看到自己在不久的将来为可用的_日期添加更多信息?例如,可能是位置、时区、通勤距离等因素使这些数据总体上成为“可用性”。因为 在这种情况下,我宁愿创建具有关联的独立对象李>
- 我是否看到自己在代码的其他地方重用这些日期?然后我宁愿将它们变成单独的对象并持久化
我认为这对你的心智不好。DB有简单的数据类型,不用于保留对象模型 TL;博士:就像所有的设计问题一样,我认为答案是“视情况而定” 第一季度: 我以前两种方法都做过。如果我做了这个决定,我会考虑如下:
- 我是否看到自己在不久的将来为可用的_日期添加更多信息?例如,可能是位置、时区、通勤距离等因素使这些数据总体上成为“可用性”。因为 在这种情况下,我宁愿创建具有关联的独立对象李>
- 我是否看到自己在代码的其他地方重用这些日期?然后我宁愿将它们变成单独的对象并持久化
我认为这对你的心智不好。DB有简单的数据类型,不用于保留对象模型 在第1季度,我会使用关联而不是数组,因为它提供了更大的灵活性。所以,一个孩子,正如你所说,是我会做的 在第二季度,我还将采用一种独立的工作体验模式,因为它还提供了更多的灵活性和增长空间。此外,当一个人开始收集工作经验时,数组可能会变得有点混乱,查询信息可能会变得比使用数组更复杂。使用单独的模型,Active Record将为您提供许多工具,您可以使用这些工具挖掘一个人的工作经验
希望有帮助 在第1季度,我会使用关联而不是数组,因为它提供了更大的灵活性。所以,一个孩子,正如你所说,是我会做的 在第二季度,我还将采用一种独立的工作体验模式,因为它还提供了更多的灵活性和增长空间。此外,当一个人开始收集工作经验时,数组可能会变得有点混乱,查询信息可能会变得比使用数组更复杂。使用单独的模型,Active Record将为您提供许多工具,您可以使用这些工具挖掘一个人的工作经验 希望有帮助