Ruby on rails 轨道模型结构

Ruby on rails 轨道模型结构,ruby-on-rails,model,Ruby On Rails,Model,我已经在堆栈中看到了一些关于这个的线程,但需要更多的澄清 我见过很多有产品模型和分类模型的应用程序。这是一个has,属于多个关联,或者一个has\u多个through关联 我也见过许多应用程序,其中有一个用户模型和一个电子邮件地址模型。电子邮件地址属于用户,但用户可以有许多电子邮件地址 我的问题是,有没有一种情况,你可以将所有的电子邮件地址或类别分别归入用户和产品模型?所以在你的用户模型中,你会有email\u一,email\u二,等等 将其划分为不同的模型有哪些优点和缺点?谢谢。如果属性很简单

我已经在堆栈中看到了一些关于这个的线程,但需要更多的澄清

我见过很多有产品模型和分类模型的应用程序。这是一个has,属于多个关联,或者一个has\u多个through关联

我也见过许多应用程序,其中有一个用户模型和一个电子邮件地址模型。电子邮件地址属于用户,但用户可以有许多电子邮件地址

我的问题是,有没有一种情况,你可以将所有的电子邮件地址或类别分别归入用户和产品模型?所以在你的用户模型中,你会有email\u一,email\u二,等等


将其划分为不同的模型有哪些优点和缺点?谢谢。

如果属性很简单,那么几乎可以肯定的是,最好将其保存在一个模型中—您甚至可以序列化该属性,以便它使用电子邮件地址数组等。但是(大但)你可能想在电子邮件地址中添加更多的信息-哪一个是主要的,最后一次分析是什么时候,最后一次发送到的电子邮件。。如果你有一个单独的电子邮件地址模型,这当然更容易处理。因此,问题可能真的是“我应该在什么时候使用序列化属性?”。我自己的答案是“只有当我确信我在该字段中存储了一些我永远不想添加更多属性的内容时”。通常这意味着它是主应用程序非常外围的东西,没有人非常关心它…

如果属性很简单,那么几乎可以肯定最好将其保存在一个模型中-您甚至可以序列化属性,以便它使用(例如)和电子邮件地址数组。但是(大但)你可能想在电子邮件地址中添加更多的信息-哪一个是主要的,最后一次分析是什么时候,最后一次发送到的电子邮件。。如果你有一个单独的电子邮件地址模型,这当然更容易处理。因此,问题可能真的是“我应该在什么时候使用序列化属性?”。我自己的答案是“只有当我确信我在该字段中存储了一些我永远不想添加更多属性的内容时”。通常这意味着它是主应用程序非常外围的东西,没有人非常关心它…

请记住,如果您将电子邮件地址数组序列化到单个字段中,那么根据单个电子邮件地址可靠地找到用户将变得更难谢谢@Gareth。因此,将事物划分为各自的模型以提供最大的灵活性是有意义的。@chrispanda,在用户模型中是否可以有两个或多个字段,例如电子邮件地址?与将其存储在一个字段或单独的电子邮件模型中不同,您可以在用户模型中具有主\u电子邮件、次\u电子邮件、三级\u电子邮件等属性?例如,我所关心的是,在不同的模型中,很难用电子邮件和密码对用户进行身份验证。谢谢。嗯,这是可能的,但我想不出做这件事的好理由。如果您想使用电子邮件和密码进行身份验证,那么您可能需要一个主电子邮件字段来完成此操作。其他字段也可以序列化-这样做的好处是,您不必受限于固定数量的备用电子邮件地址-尽管正如Gareth指出的,这使得根据用户的电子邮件地址搜索用户变得更加困难,请记住,如果您将一组电子邮件地址序列化到单个字段中,然后,基于单个电子邮件地址Thank@Gareth就很难可靠地找到用户。因此,将事物划分为各自的模型以提供最大的灵活性是有意义的。@chrispanda,在用户模型中是否可以有两个或多个字段,例如电子邮件地址?与将其存储在一个字段或单独的电子邮件模型中不同,您可以在用户模型中具有主\u电子邮件、次\u电子邮件、三级\u电子邮件等属性?例如,我所关心的是,在不同的模型中,很难用电子邮件和密码对用户进行身份验证。谢谢。嗯,这是可能的,但我想不出做这件事的好理由。如果您想使用电子邮件和密码进行身份验证,那么您可能需要一个主电子邮件字段来完成此操作。其他字段也可以序列化-这样做的好处是,您不必受限于固定数量的备用电子邮件地址-尽管正如Gareth指出的那样,这使得根据用户的电子邮件地址搜索用户变得更加困难