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