为 MongoDB 中的多用途实体关联不同的实体?

问题描述

这个问题与带有 mongoid 的 MongoDB 有关。我的用例如下:

我有一个 Address 实体,可以在许多不同的上下文中使用,例如它可以是客户、供应商、用户等的地址。除此之外,例如,客户可以有多个地址,例如办公地址、送货地址等。

这里是 Address 实体,例如:

class Address
    include Mongoid::Document
    field :suburb,type: String
    field :city,type: String
    field :postcode,type: String
    field :country,type: String    
end

从客户方面来说,我的想法是:

class Customer
    include Mongoid::Document

    has_many :customer_addresses
end

class CustomerAddress
    include Mongoid::Document

    field :address_type,type: String
    has_one :address

    belongs_to :customer
    
end

根据 mongoid documentation,我需要将 belongs_to 宏放入 Address 以指向 CustomerAddress 实体以使其正常工作。

然而,在这种情况下,地址是多用途的。它也可以是供应商地址、用户地址或属于任何其他需要地址的实体。

也许我在关系数据库方面考虑得太多?解决这个问题的 MongoDB 方法是什么?

其次,如果我不想要 CustomerAddress 实体,但想要 Customer 上的不同字段,例如 :office_address:delivery_address,每个字段解析为 {{ 1}},我该怎么做?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)