Azure表存储存储多种类型

2023-12-07

对于以下场景,您有什么建议:

我有一个名为 Users 的天蓝色表,其中列如下:

  • 首要的关键
  • RowKey
  • 时间戳
  • LastName
  • Email
  • Phone

然后每个用户都有不同类型的任务,我们将它们称为TaskType1 和TaskType2。

两种任务类型都有公共列,但也有类型特定的列,如下所示:

  • PrimaryKey(这与 Users PrimaryKey 相同,用于查找属于一个用户的所有任务)
  • RowKey
  • 时间戳
  • Name
  • DueDate
  • 描述
  • Priority

任务类型 1 有附加列:

  • 预计完成日期
  • 可行

任务类型 2 有其自己的特定列:

  • 预计费用

我知道我可以将两种类型存储在同一个表中,我的问题是:

如果我对 TaskType1 和 TaskType2 使用不同的表,会对交易成本产生什么影响?我猜测,如果每种任务类型都有 2 个表,那么我将发出如下查询:get me all tasks where the task Primarykey is equal to a specific user from Users table PrimaryKey那么我将不得不为每种类型运行 2 个查询(因为用户可以同时拥有两种任务类型),这意味着更多的事务...相反,如果两个任务都在同一个表中,那么它将类似于 1 个查询(之后限制为 1000 个)分页事务)因为我将获取 PartitionKey 是用户 PartitionKey 的所有行,因此分区不会拆分,这意味着 1 个事务,对吗?

那么,如果我将任务存储在不同的表中,我将会有更多的事务,我的理解是否正确?


Answer recommended by Microsoft Azure Collective

你的理解是完全正确的。将任务拆分为 2 个单独的表将意味着 2 个单独的查询,从而意味着 2 个事务(暂时不考虑 1000 多个实体)。尽管交易成本是将它们保留在同一个表中的原因之一,但还有其他原因:

  • 通过将它们保存在同一个表中,您将充分利用 Azure 表存储的无架构特性。
  • 2 个表意味着 2 个网络调用。尽管该服务具有高可用性,但您需要考虑调用第一个表成功但调用第二个表失败的情况。在这种情况下您的应用程序会如何表现?您是否也丢弃第一个表中的结果?通过将它们保留在一张表中可以避免这种情况。
  • 假设您的应用程序中有一个场景,用户可以同时订阅任务 1 和 2。如果将它们保存在同一个表中,则可以使用Entity Group Transaction因为两个实体(一个用于任务 1,另一个用于任务 2)将具有相同的 PartitionKey(即用户 ID)。如果将它们保存在单独的表中,您将无法利用实体组事务。

我给出的一项建议是在任务表中添加“TaskType”属性。这样您也可以更轻松地按任务进行过滤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure表存储存储多种类型 的相关文章

随机推荐

  • 使用 create-react-app 的多个入口点

    我的页面包含 20 的 React 组件和 80 的普通 html 内容 有必要在页面的不同位置放置多个React组件 因此我需要在index html中使用多个入口点 我想使用create react app 但我不想使用redux 因为
  • Magento - 在管理中不可见/不可编辑的产品属性

    是否可以通过代码 或手动 创建通过管理编辑产品页面不可见 因此不可编辑 的产品属性 如何 该属性只需要在php模块中使用 保存 加载 对的 这是可能的 如果您在安装脚本中执行此操作 您应该设置 visible 为假 installer gt
  • 如何建立友谊关系模型

    我一直在试图弄清楚如何做到这一点 即使查看其他示例 我也无法弄清楚 所以也许我可以获得一些个性化的帮助 我有两张桌子users status and friendships In the users status表我有一个字段userid
  • 如何修复React中的map is not a function错误?

    我遇到错误 map is not a function进行 API 调用时 我不久前才开始学习 React 和 API 我尝试将状态更改为对象 但未定义 因为 我得到的地图不是一个函数 也许我缺少调用 API 的东西 这是下面的代码 fun
  • 在ABAP中找到两个数据集的差异?

    我有一组值 foo bar blue 我有一个看起来像这样的表 ID my col 1 foo 2 bar 我想要设置值减去所有可用的 my col 值 foo bar blue 减去 foo bar 结果应该是 蓝色 在ABAP中如何做到
  • Jade Templates - 动态调用 Mixin

    如何使用 json 中的字符串输入 Jade 模板来动态加载 mixin 下面 目标是twoColumn jade加载foo and bar mixins 两列 jade mixin twoColumns obj container flu
  • AngularJS -$compileProvider.preAssignBindingsEnabled 不是一个函数

    我在尝试执行以下操作时收到以下错误消息gulp serve在我的 AngularJS 10 6 1 版 应用程序上 Error injector modulerr Failed to instantiate module myAppName
  • MS-DOS 如何获取命令的输出作为变量

    我编写了一个程序 该程序将 DOS 的键码作为整数返回 但我不知道如何将其输出作为变量 注意 我使用的是 MS DOS 7 Windows 98 所以无法使用FOR F or SET P 有谁知道我该怎么做 Eric Pement 描述了一
  • 如何在转换中使用枢轴点

    如何使用中心点平移对象 我有一个矩形 其中心点远离矩形的位置 当我旋转矩形时 它绕其中心轴旋转 如果我在 modelView 矩阵中旋转之前乘以位置 ModelViewMatrix Rotation Scaling Position 假设我
  • 在 StoryBoard 上设置自定义附加属性

    我有一个故事板 想要设置附加属性 VisualStateUtility InitialState 我尝试过各种组合 但属性从未得到解决 我收到以下错误 无法解析 TargetProperty VisualStateUtility Initi
  • 在 Ruby 中使用 new 运算符对自动激活哈希值进行多重初始化

    我想初始化几个自动激活哈希值通过一行表达式 到目前为止 我找到了一种额外的方法AutoHash object class AutoHash lt Hash def few n 0 Array new n AutoHash new end 这
  • Angular 2 rc5,使用注入的管道的单元测试问题

    我正在使用 angular2 rc 5 我编写了一个自定义管道 可以从 json 中获取值 自定义管道 literal pipe ts 看起来像 import Pipe PipeTransform Inject from angular c
  • 在从加载标签的视图扩展的页面上使用 Django template_tag

    我已向我的应用程序添加了一个模板标签 我将其加载到位于的视图中inc base html 该视图包含我的基本 HTML 布局 我所有其他观点开始 extends inc base html 在我的视图之一中 我想引用我的模板标签 该标签加载
  • 使用三个 CSG 进行 3D 布尔运算

    按照此处的示例 http learning Threejs com blog 2011 12 10 constructive solid geometry with csg js 并使用 Three js 与https github com
  • cellDoubleClicked 文本 python

    我在使用 PyQt5 时遇到一个问题 我已经制作了一个 QTableWidget 它显示我之前在 pandas 中制作的 DataFrame 来自电子表格 我尝试做的不成功的事情是 从用户双击的单元格中获取文本 以便我可以使用该信息根据所做
  • 所有图像加载后如何发出警报?

    我正在构建一个 JavaScript 游戏 我想在加载所有图像后发出警报 我尝试了这段代码 但它不起作用 function loadEveryThing var imgNumber 0 img1 new Image img1 src 1 p
  • “#”附近的语法不正确。带有 SQL 数据库的 VB.net

    我正在尝试使用以下代码获取日期 今天的 Max 字段 Dim todaydate Format Today Date dd MM yyyy Dim sql1 As String Select max snum From tblbill wh
  • JButton 在鼠标悬停之前不可见

    我正在为我的项目创建一个图形用户界面 当 gui 首次加载时 只有背景可见 因此按钮不可见 但当鼠标悬停在按钮上时 它们是可见的 解决这个问题的办法是什么 public class Home extends JFrame New JPane
  • 在 Scala 中将嵌套案例类转换为嵌套映射

    我有两个嵌套案例类 case class InnerClass param1 String param2 String case class OuterClass myInt Int myInner InnerClass val x Out
  • Azure表存储存储多种类型

    对于以下场景 您有什么建议 我有一个名为 Users 的天蓝色表 其中列如下 首要的关键 RowKey 时间戳 名 LastName Email Phone 然后每个用户都有不同类型的任务 我们将它们称为TaskType1 和TaskTyp