多租户主键的最佳方法

2024-04-20

我有一个被多个客户使用的数据库。我真的不希望代理增量键值在客户端之间流动。我希望编号从 1 开始并针对特定客户。

我将使用由两部分组成的复合键tenant_id以及增量 id。

为每个租户创建增量密钥的最佳方法是什么?

我正在使用 SQL Server Azure。我担心锁定表、重复键等。我通常将主键设置为 IDENTITY 并继续。

Thanks


您计划将来使用 SQL Azure 联合吗?如果是这样,当前版本的 SQL Azure 联合不支持使用 IDENTITY 作为聚集索引的一部分。看到这个除了使用 guid 作为 SQL Azure(联合)中表的聚集索引之外,还有哪些替代方法 https://stackoverflow.com/questions/12719365/what-alternatives-exist-to-using-guid-as-clustered-index-on-tables-in-sql-azure更多细节。

如果您还没有查看过联合,您可能想查看一下,因为它提供了一种有趣的方法来对数据库进行分片并在数据库内进行租户隔离。

根据您的最终目标,使用联合,您可能能够使用 GUID 作为表上的主聚集索引,并且还可以在表上使用增量 INT IDENTITY 字段。该 INT IDENTITY 字段可以显示给最终用户。如果您在 TenantID 上进行联合,每个“租户表”实际上会成为一个筒仓(至少据我所知),因此在该表中的字段上使用 IDENTITY 实际上将是一个不断增加的自动生成值,该值在给定租户内递增。

当 \ 如果数据合并在一起(合并来自多个租户的数据)时,您将最终在此 INT IDENTITY 字段上发生冲突(因此不支持将 IDENTITY 作为联合中的主键),但只要您不使用此字段字段作为整个系统内的唯一标识符应该没问题。

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

多租户主键的最佳方法 的相关文章

  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • 如何使用sql脚本更改列的属性

    如何使用 sql 脚本更改列的属性 这是我尝试过但出现错误的方法 ALTER TABLE dbo tblBiometricPattern COLUMN BiometricPatternID TINYINT NOT NULL IDENTITY
  • 如何在Oracle中从表中选择列,*?

    我正在创建很多脚本 有时为了检查表是否根据我的需要进行更新 我会即时编写几个 SELECT 语句 在 SQL SERVER 中你可以这样写 SELECT Column1 FROM MY TABLE 出于可见性原因 这很有用 但是这似乎在 O
  • 如何在 SQL Server 中保持数据行内

    我正在尝试找出如何检测数据是否在VARCHAR n SQL Server 2008 中的列存储在行内或行外 有谁知道如何做到这一点 另外 如果我们需要数据 有没有办法将数据保持在行中 要查看某个值是行内还是行外 您可以使用DBCC PAGE
  • 我应该定义索引(A)和索引(B),还是索引(A,B),或者两者都定义?

    在我的表中 我有两个密切相关的列 A 和 B 我应该考虑哪些因素来决定是否创建 索引 A 和索引 B 索引 A B 以上两者 如果我 仅使用类似的查询where A 5 and B 10 并且从不喜欢where A 5 也可以使用类似的查询
  • 如何搜索表中的所有列?

    如何在 SQL Server 中搜索表的所有列 SELECT FROM yourtable WHERE val IN field1 field2 field3 field4 如果您正在寻找精确的全场比赛 如果你正在寻找子字符串匹配 你将不得
  • sql join 告诉我 ID 是否存在于其他表中

    我有 2 张桌子 A B ID FKID 1 3 2 3 3 4 4 4 我需要一个 select 语句 它显示 A 的所有内容 其中一个字段告诉我表 B 是否有任何与该 ID 匹配的 id Desired Result ID hasB 1
  • Postgres LIMIT/OFFSET 奇怪的行为

    我正在使用 PostgreSQL 9 6 我有一个这样的查询 SELECT anon 1 id AS anon 1 id anon 1 is valid AS anon 1 is valid anon 1 first name AS ano
  • 对于返回超过1个值的SQL select,当Id为GUID时它们如何排序?

    我想知道 SQL Server 如何对查询返回的数据进行排序 并且各个表的 Id 列都是 uniqueidentifier 类型 我在创建所有 GUID 时使用 NHibernate GuidComb 并执行以下操作 Sheet sheet
  • 与 SQL 中的 IN 运算符相反

    我怎么能做相反的事情 换句话说 选择所有姓氏不是 Hansen 或 Pettersen 的人 WHERE lastname NOT IN Hansen Pettersen 请参阅 IN 和 NOT IN 运算符 部分SQLite 所理解的
  • SQL Server 批量插入 - “批量加载数据转换错误”

    bulk insert dbo A FROM d AData csv WITH FIELDTERMINATOR ROWTERMINATOR n 将批量数据插入数据库时 在检查可疑数据后 我遇到了无法解释的错误 消息 4867 16 级 状态
  • 如何在 PostgreSQL 中使用条件和子查询创建唯一索引?

    我使用 PGSQL 并尝试添加下面的索引 CREATE UNIQUE INDEX fk client ON user client fk client WHERE fk client NOT IN SELECT fk client FROM
  • 创建日期范围表

    我正在编写一份需要显示每天值的报告 我有查询的开始日期和结束日期 但我希望避免丢失日期 以防表不包含特定日期的值 我正在考虑创建一个基本日期范围表 其中包含开始和结束之间的所有日期 然后将其与数据表左连接以显示每一天的值 我找到了一些适用于
  • 最近邻居的 Postgis SQL

    我正在尝试计算最近的邻居 为此 我需要传递一个参数来限制与邻居的最大距离 例如 半径1000米内最近的邻居是哪些 我做了以下事情 我用数据创建了表 id name latitude longitude 之后 我执行了以下查询 SELECT
  • ORA-00933 与内部联接和“as”混淆

    我有一个使用以下命令从两个表中获取数据的查询inner join 但我收到错误SQL command not properly ended as 下面有一个星号 select P carrier id O order id O aircra
  • 我应该使用平面表还是标准化数据库?

    我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序 在继续下一步之前 我需要知道什么更适合我的情况 简而言之 在这个应用程序中 用户将能够使用任何数字字段 他们决定 构建自己的表单 现在我将其全部存储在通过外键链接的几个
  • Extbase - 从查询中获取创建的sql

    我想从我的typo3 扩展中获取一些数据库表 该扩展基于 extbase 查询总是不返回任何内容 但数据存在 我试过这个 query this gt createQuery query gt statement SELECT FROM my
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 没有为 1 个或多个必需参数给出值。更新SQL

    我正在编写一个程序 当用户在列表视图上选择记录时 该程序会更新密码或积分 我收到错误 没有为 1 个或多个必需参数给出值 我不知道如何纠正 我是否遗漏了一些明显的东西 Dim sql As String UPDATE Users SET P

随机推荐

  • Blowfish 在 Java/Scala 中加密并在 bash 中解密

    我正在尝试构建一个工具来解密在 scala 应用程序中加密的 bash 内容 但首先 我必须成功地用两种语言对相同的消息进行编码并使它们相等 给定密码 0123456789abcdef 十六进制 3031323334353637383961
  • 为什么具有单个组的数据帧 groupby 不返回数据帧?

    我怀疑这是我的问题的更简单形式here https stackoverflow com questions 18518077 why does pandas groupby cut give different form of output
  • std::variant 似乎不适用于 C++ 中的shared_ptr

    通过下面的代码 我得到 In static member function static std shared ptr
  • C++20 内存模型中释放序列定义的更改有何影响?

    考虑这个程序 Initially std atomic
  • Java中如何处理未知的protobuf字段?

    我有一个 Java 应用程序 它从另一台计算机读取一些 protobuf 数据 然后修改一些值并将其写回 用户很可能使用过时的 proto 文件读取数据 因此在这种情况下会有一些字段无法理解 我最终希望在写回所做的更改时保留未知的数据 但是
  • 是否可以反转包含循环的链表?

    我正在看一些面试问题 其中一个要求反转包含循环的链表 所以假设我有一个如下所示的链接列表 F lt E V A gt B gt C gt D 然后反转列表将创建以下内容 F gt E V A lt B lt C lt D 这里的问题是 C
  • 在不破坏寻呼机的情况下获取第一个集合项

    我之前发布了一个关于此问题的问题 但我现在有了更多信息 我认为最好发布一个新问题而不是修改 抱歉 如果这不是正确的协议 你可以找到我原来的问题here https stackoverflow com questions 6311646 ma
  • 警告: array_key_exists() 期望参数 2 为数组,给定布尔值 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有下面的代码 它检查数组中是否存在
  • 使用 R 进行快速 url 查询

    您好 必须查询网站 10000 次 我正在寻找一种真正快速的方法来使用 R 来做到这一点 作为模板网址 url lt http mutationassessor org cm var var 7 55178574 G A 我的代码是 url
  • 访问父 DOM 中的 iframe 窗口对象

    我有一个项目 其中有来自其他领域的元素 我正在使用 JavaScript 将第一个 iframe 窗口对象访问到变量中 这是代码 var iframes window frames grab first iframe var ifrWind
  • 本地数据库是否有任何选项,例如用于 j2me - CLDC 设备的 Sqlite?

    本地数据库是否有任何选项 例如用于 j2me CLDC 设备的 Sqlite PerstLite 和 OpenBaseMovil 均享有双重许可 是否有任何开源选项 或者 开发应用程序的任何替代方法 from J2ME中的数据库列表 htt
  • Android 推荐且可靠的 API 用于定期后台工作?

    我一直在使用 WorkManager 为我的应用程序创建通知 就我的目的而言 我认为PeriodicWorkRequest是最合适的 但经过一些测试和在线阅读后 它似乎非常不可靠 使用最小间隔 15 分钟 并关闭应用程序 该工作人员醒来 5
  • ASP.NET Core API 在 React 客户端调用时返回 401

    我正在开发一个带有 React Redux 前端的全新 ASP NET Core 2 1 SPA 应用程序 我已经实施了jwt从 Azure AD B2C 获取其令牌的身份验证 当我分析对后端 API 调用的网络选项卡时 我看到令牌被放置在
  • jQuery - iPad/iPhone - 禁用滚动后启用滚动

    我使用以下方法禁用了 iPad 上的滚动 function disableScrolling document ontouchmove function e e preventDefault 有没有办法简单地再次启用它 这对于以下函数特别有
  • iOS:在导航栏下方添加固定图像

    感觉这应该相当简单 但到目前为止我尝试过的都没有成功 简而言之 我想在我以编程方式创建的 UITableViewController 中的导航栏下方添加一个固定图像 换句话说 我希望图像保持在导航栏的正下方 即使用户在表视图中上下滚动 它基
  • RNGCryptoServiceProvider 已过时

    我需要使用随机数字和字母生成令牌 但是 错误消息告诉我使用 RandomNumberGenerator 它只会给我随机数 这没有帮助 错误信息 RNGCryptoServiceProvider 已过时 RNGCryptoServicePro
  • Scrapy 阿拉伯字母返回一些奇怪的东西

    我在用scrapy关于阿拉伯字母和英文字母 英文字母完美地工作 然而 阿拉伯字母显示如下 gs300 2006 u0644 u0643 u0632 u0633 u062c u064a 有什么帮助吗 我正在使用 python 和 scrapy
  • 如何编写一个程序来通过 Android 设备安装和卸载应用程序?

    我想编写一个程序 可以通过 Android 设备安装和卸载应用程序 由于这些功能是通过 Android 设备提供的 但是我应该从哪里开始以及需要查看哪些文件来开发我自己的应用程序 请帮帮我 提前致谢 Praween 对于这样的安装代码 In
  • 使用委托调用构造函数

    I found this http blogs msdn com haibo luo archive 2005 11 17 494009 aspx但尝试使用它但失败了 如何使用反射创建对象并通过将其放入委托中来使其快速 DynamicMet
  • 多租户主键的最佳方法

    我有一个被多个客户使用的数据库 我真的不希望代理增量键值在客户端之间流动 我希望编号从 1 开始并针对特定客户 我将使用由两部分组成的复合键tenant id以及增量 id 为每个租户创建增量密钥的最佳方法是什么 我正在使用 SQL Ser