Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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
如何在NOSQL中映射具有可选父级的模型_Sql_Nosql - Fatal编程技术网

如何在NOSQL中映射具有可选父级的模型

如何在NOSQL中映射具有可选父级的模型,sql,nosql,Sql,Nosql,我的数据库中有两个实体,我正试图将它们转换为NOSQL。站点和客户 客户有自己的网站 网站可以属于客户,但不需要客户 我开始想我会交换它,这样我就有了一个网站集合,每个网站都可以有一个客户,但不需要客户。但我仍然觉得客户应该是家长,因为这似乎更自然。然而,在这种情况下,我如何处理没有客户的站点 有没有处理这种情况的惯例?我承认我仍然习惯于NOSQL中的工作方式 提前感谢。如果您使用面向对象的数据库,我的建议是像这样实现Site、Customer和SitePerCustomer类 [Databas

我的数据库中有两个实体,我正试图将它们转换为NOSQL。站点和客户

  • 客户有自己的网站
  • 网站可以属于客户,但不需要客户
  • 我开始想我会交换它,这样我就有了一个网站集合,每个网站都可以有一个客户,但不需要客户。但我仍然觉得客户应该是家长,因为这似乎更自然。然而,在这种情况下,我如何处理没有客户的站点

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


    提前感谢。

    如果您使用面向对象的数据库,我的建议是像这样实现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;
    }
    
    [数据库]
    公共类网站
    {
    ...
    }
    [数据库]
    公共类客户
    {
    公共IEnumerable连接站点
    {
    得到
    {
    返回SQL(“从SitePerCustomer s中选择s.Site,其中s.ConnectedCustomer=?”,此选项);
    }
    }
    [数据库]
    公共类SitePerCustomer
    {
    公共站点连接站点;
    公共客户连接客户;
    }
    

    然后,您可以使用Customer来表示它是什么,也可以使用站点。Customer实例可以使用get属性或方法与所有站点关联。

    对我来说,站点本身就是一件事。人本身就是另一件事,然后您还有第三件事——这些人如何与这些站点关联?没有人,只有客户。因此,您不会有m是同一个集合的一部分。两个单独的集合在一起?我只使用两个文档:客户和站点。客户不关心站点,但是站点属于客户时应该有一个引用。