Database design 无SQL数据库的设计

Database design 无SQL数据库的设计,database-design,azure,nosql,azure-table-storage,Database Design,Azure,Nosql,Azure Table Storage,作为一个培训项目,我试图在Azure上构建一个家谱应用程序 第一步是数据库,我计划使用表存储 对于家族树应用程序,表存储设计是什么样的 我想出了几个解决办法 每个人一个条目,包含该人所有关系的xml。但这意味着要为给定的更改和大量重复数据更新几行 每种类型的信息一张表,一个人一张表,关系一张表。。。但这感觉就像一个关系数据库 我的第一个问题是您计划如何访问这些信息?考虑如何构建数据结构以访问数据。不要羞于打破过去20年来我们一直被喂饱的正常化规则。接受冗余的专用模型。也要考虑这个问题,并考虑使

作为一个培训项目,我试图在Azure上构建一个家谱应用程序

第一步是数据库,我计划使用表存储

对于家族树应用程序,表存储设计是什么样的

我想出了几个解决办法

  • 每个人一个条目,包含该人所有关系的xml。但这意味着要为给定的更改和大量重复数据更新几行
  • 每种类型的信息一张表,一个人一张表,关系一张表。。。但这感觉就像一个关系数据库

    • 我的第一个问题是您计划如何访问这些信息?考虑如何构建数据结构以访问数据。不要羞于打破过去20年来我们一直被喂饱的正常化规则。接受冗余的专用模型。也要考虑这个问题,并考虑使用PARLALL查询。如果数据存储在多个位置,请同时查找每个位置并汇总结果


      最后,以预定义的显示格式存储一些数据。很可能你的家谱信息大部分都被阅读了,所以要有优化的“视图”。当您找到想要显示的人时,可能只有一个XML文件可以提供所有数据供查看

      我的第一个问题是您计划如何访问这些信息?考虑如何构建数据结构以访问数据。不要羞于打破过去20年来我们一直被喂饱的正常化规则。接受冗余的专用模型。也要考虑这个问题,并考虑使用PARLALL查询。如果数据存储在多个位置,请同时查找每个位置并汇总结果


      最后,以预定义的显示格式存储一些数据。很可能你的家谱信息大部分都被阅读了,所以要有优化的“视图”。当您找到想要显示的人时,可能只有一个XML文件可以提供所有数据供查看

      我将为每个家庭构建一个分区,每个人有一行,因此对于每个人,分区键将是家庭,行键将是个人的标识符。在每个人身上为父母添加一个属性(通常只有两个:))。这样,您可以快速地将整个分区读入内存,并使用内存中的树结构遍历图形。一个典型的族应该有不到100个节点,所以会有闪电般的速度。更新将始终指向一个族,因此可以使用事务,因为每个族都位于分区中


      对于一个非常困难的(相关的)练习,在键值存储(表存储)之上实现一个图形数据库(如您的族谱)。想想twitter或facebook在所有关系(社交图)中需要查看更新(推特、新闻)的地方存在的问题。然后开始进入NoSQL的有趣(硬)部分。

      我将为每个家庭构建一个分区,每个人有一行,因此对于每个人,分区键将是家庭,行键将是个人的标识符。在每个人身上为父母添加一个属性(通常只有两个:))。这样,您可以快速地将整个分区读入内存,并使用内存中的树结构遍历图形。一个典型的族应该有不到100个节点,所以会有闪电般的速度。更新将始终指向一个族,因此可以使用事务,因为每个族都位于分区中


      对于一个非常困难的(相关的)练习,在键值存储(表存储)之上实现一个图形数据库(如您的族谱)。想想twitter或facebook在所有关系(社交图)中需要查看更新(推特、新闻)的地方存在的问题。然后,您开始进入NoSQL的有趣(硬)部分。

      鉴于家谱应用程序与实体之间的关系比实体本身更相关,因此在关系数据库中对此进行建模更合适


      我发布的这篇文章并没有回答您的问题,但最终我们需要为这项任务选择最合适的工具。

      鉴于家谱应用程序更多地涉及实体之间的关系,而不是实体本身,因此在关系数据库中对此进行建模更合适

      我发布的这篇文章并没有回答您的问题,但在一天结束时,我们需要为这项任务选择最合适的工具