如何在NOSQL中使用可选父项映射模型

时间:2013-09-04 12:46:47

标签: sql nosql

我的情况是我的数据库中有两个实体,我正在尝试将其转换为NOSQL。网站和客户

  1. 客户拥有网站
  2. 网站可以属于客户,但不需要一个
  3. 我开始以为我会交换它,所以我有一个网站集合,每个网站都有一个客户,但不需要一个。但我仍然认为顾客应该是父母,因为这似乎更自然。但是,在这种情况下,我对没有客户的网站会怎样做。

    是否有处理这种情况的公约?我承认我仍然习惯于在NOSQL中如何运作

    提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您使用面向对象的数据库,我的建议是实现类Site,Customer和SitePerCustomer这样

[Database]
public class Site
{
    ...
}

[Database]
public class Customer
{
     public IEnumerable<Site> ConnectedSites
     {
         get
         {
              return SQL<Site>("SELECT s.Site from SitePerCustomer s WHERE s.ConnectedCustomer=?", this);
          }
}

[Database]
public class SitePerCustomer
{
    public Site ConnectedSite;
    public Customer ConnectedCustomer;
}

然后,您可以使用Customer以及Site。 Customer实例可以使用get属性或方法与所有站点相关联。