代码之家  ›  专栏  ›  技术社区  ›  Mark13426

我们如何验证Azure表存储列的唯一性?

  •  2
  • Mark13426  · 技术社区  · 12 年前

    Azure表存储强制执行的唯一主键/唯一性验证是分区键+行键。如果我希望任何其他列是唯一的,我需要在应用程序层检查这个条件。

    if(service.GetEmailAddress(emailAddress) == null) {
       // email address is not yet registered by a user
       // persist user data to the database
    }
    else
    {
       // display an error message
    }
    

    我好奇的是,如果有X个并发用户试图将相同的列值保存到同一个表中,会发生什么。确保在没有UNIQUE约束的特定列下不输入重复值的安全方法是什么?

    1 回复  |  直到 12 年前
        1
  •  2
  •   Community CDub    8 年前

    据我所知,Azure表存储并不是为这样的目的而设计的。正如他们所说,Azure表存储的目标是:

    存储数据以实现高效检索和持久性

    因此,鉴于我认为这可能不是您正在寻找的解决方案,我认为您应该评估移动数据Azure SQL的可能性。因为在Azure表存储(或任何其他NoSQL实现)中,COLUMN的概念没有太大价值,因为您可以在同一个表中保存不同类型的实体。

    进一步阅读 link1 , link2