MT_Data表如何在Salesforce多租户架构中存储数据?

时间:2019-02-15 07:54:58

标签: database-design salesforce multi-tenant

我正在阅读有关多租户架构的Salesforce实施的article。我正在尝试将其工作原理全神贯注。

我陷入困境,试图了解它们如何存储对象的实际数据。

特别是,这一行“如下图所示,同一对象的两个字段都不能映射到MT_Data中的同一插槽进行存储;但是,一个插槽可以管理多个字段的信息,只要每个场源于另一个对象。”然后他们显示了这张图

diagram from salesforce article

让我们使用此单个产品数据以便于理解

  • 产品ID:prod-1
  • 产品名称:杯子
  • 产品价格:1.00
  • 产品描述:这杯很漂亮

因此该产品将显示在下表中:

在MT_Objects表中,应该有一个这样的数据行:

  • OrgID:org-1
  • ObjID:prod-1
  • ObjName:杯

在MT_Fields表中,应该有2个数据行,如下所示:

MT_Fields中的DataRow 1

  • OrgID:org-1
  • ObjID:prod-1
  • FieldID:字段1
  • 名称:价格
  • DataType:十进制
  • IsIndexed:False
  • RelativePosition:1

MT_Fields中的DataRow 2

  • OrgID:org-1
  • ObjID:prod-1
  • FieldID:字段2
  • 名称:说明
  • DataType:文本
  • IsIndexed:False
  • RelativePosition:2

那么在MT_Data表中是什么样子?我对于字段PriceDescription的每个值是否在单独的行中显示为Value0感到困惑?或者完全是另外一回事。

如果它们显示为Value0,那么有500条在文章中提到的弹性列又有什么意义呢?

当他们说“一个插槽可以管理多个字段的信息,只要每个字段都来自不同的对象”时,它们到底是什么意思?

0 个答案:

没有答案