0

我的情况是,我的数据库中有两个实体,我正试图将它们转换为 NOSQL。现场和客户

  1. 客户有网站
  2. 一个站点可以属于一个客户,但不需要一个

我开始想我会交换它,所以我有一组站点,每个站点都可以有一个客户,但不需要一个。但我仍然觉得 Customer 应该是父母,因为这看起来更自然。但是,在这种情况下,我将如何处理没有客户的网站。

是否有处理这种情况的惯例?我承认我仍然习惯于 NOSQL 中的工作方式

提前致谢。

4

1 回答 1

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 属性或方法与所有站点相关联。

于 2013-09-04T13:49:53.957 回答