Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:在DB中存储阵列与设置关系_Ruby On Rails_Postgresql - Fatal编程技术网

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将为您提供许多工具,您可以使用这些工具挖掘一个人的工作经验

    希望有帮助