2

我正在使用 Azure Tables,并试图弄清楚我应该如何组织我的数据。

表中的每个实体都有一个 PartitionKey 和一个 RowKey,我的理解是分区应该用于组织类似的对象以实现可伸缩性。在网站上的示例中,他们使用了电影实体,其中类别(动作、科幻等)是 PartitionKey,而标题(速度与激情等)是 RowKey。

以上面的例子为例,假设我们没有重复的电影,并且您还想跟踪每个特定电影的租借历史,即位置、到期日期、客户等。

让一个表来存储所有这些并为出租实体使用单独的分区是不好的做法吗?为了清楚起见,我说的是电影项目及其对应的历史项目一起在不同分区中的同一个非规范化表中。

使用两个单独的表会有优势吗?如果没有,那么表的意义何在?

编辑:
分区键| 行键 | 道具0 | 道具1 |...
--------------------------------------------- ---...
科幻 | 星球大战| foo0: bar0 | foo1: bar1|...
出租 | 星球大战| foo0: bar0 | foo1:bar1|...

4

1 回答 1

1

首先,表存储的概念是,您可以“转储”大量数据,因为您知道搜索设施非常差,您将无法发出 SQL 查询,因此没有 RDBMS,它是一种存储大量数据的方法数据。实际上,partitionKey 和 rowKey 是您通过 Azure 存储获得的唯一索引列,这意味着通过 partitionKey 或 rowKey 搜索将比通过任何其他列搜索更快。如果您需要快速检索数据,那么 Blob 存储或表存储是不可行的。如果您只想出于审计目的或历史目的保留记录,那么可以。但是,如果您想在视频商店中使用它并且需要检索客户的详细信息,那么正如我所提到的,这是一种不好的做法。你最好使用 RDBMS。最后,你可以'

于 2013-06-28T11:06:49.473 回答