SaaS - 共享数据库中租户特定的查找数据

2023-12-01

我正在开发基于多租户 SaaS 的应用程序,并使用共享数据库在 TenantId 列的帮助下存储所有租户记录。

现在的问题是我有一些查找记录列表需要为所有租户共享。例如游戏列表。

游戏桌

Id
GameName

还有另一个表用于仅存储租户特定记录

租户游戏

Id
TenantId
GameName  

基本需求是我想使用两个表数据并获取必要的详细信息(Game_Name),同时与另一个事务表(如 UserGames)连接。我怎样才能用这个设计来实现这个目标?这里的 Game_Name 可以从 Games Shared 表或 TenantSpecificGames 表中引用

是否有任何其他数据库设计允许我将公共主数据和租户主数据与 JOIN 混合?

基本要求是保留通用数据,并允许租户自定义(如果他们想要添加任何新项目)。


这就是我接下来要使用的设计。

Games

Id
GameName
IsTenantSpecific
SomeGameSpecificColumn

租户游戏

GameId
TenantId
SomeTenantSpecificColumn
AnotherTenantSpecificColumn

然后您可以在连接中查询该表:

...
FROM
    Games
    INNER JOIN UserGames ON
        UserGames.GameId = Games.Id
    LEFT JOIN TenantGames ON
        TenantGames.GameId = Games.Id
WHERE
    TenantGames.TenantId = @tenantId OR
    (
        TenantGames.TenantId IS NULL AND
        IsTenantSpecific = 0
    )

游戏特定字段可以放入游戏表中。可以将特定于租户的字段添加到 TenantGames 表中,如果不是特定于租户的自定义,这些字段将为 NULL。

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

SaaS - 共享数据库中租户特定的查找数据 的相关文章

  • 外键引用多个表

    我有4张桌子 A ida name B ida B specific stuff C ida C specific stuff D ida D specific stuff 我希望另一个表 E 可以仅引用 B 或 C 而不是 D 我可以在其
  • 用于读取数据库模式的外部库或迷你语言?

    我正在考虑为我的妻子编写一个简单的数据库应用程序 但我对良好的编程实践很感兴趣 并且希望有一个人类可读的源来存储数据库模式 只是 我不知道有什么工具可以完成这项工作 而且我不敢相信它们不存在 可能我只是不知道该问谷歌什么 但我没有找到它们
  • PHP 中正确的存储库模式设计?

    前言 我尝试在具有关系数据库的 MVC 架构中使用存储库模式 我最近开始学习 PHP 中的 TDD 并且我意识到我的数据库与应用程序的其余部分耦合得太紧密 我读过有关存储库并使用国际奥委会容器 http laravel com docs 4
  • 在准备另一个Statement之前是否有必要关闭PreparedStatement

    是否有必要在一个db getConnection 中关闭ResultSet和PreparedStatement 对于下面的例子 Connection conn db getConnection PreparedStatement pstmt
  • Django 模型同步表

    如果我更改 Django 模型中的字段 如何将其与数据库表同步 我是否需要在数据库上手动执行此操作 或者是否有工具可以帮助完成此过程 唉 Django 不支持任何简单的解决方案 django 唯一能为你做的就是使用与新模型匹配的新表重新启动
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • MySQL 行级锁

    我不确定行级锁是如何工作的 但这是我的问题 我有一个表 T id int balance int engine InnoDB 我想锁定 ID 1 的行 所以我开始一个像这样的事务 start transaction select from
  • 数据库设计 :: 2 个参与者事件中的标准化 :: 连接表或 2 列?

    Edit 更新广义问题以反映实际领域 曲棍球运动 实际的活动是比赛日程 参与者是团队 球队是最终的 所有者 即 当球队被删除时 任何相关的预定比赛 结果 球员和球员统计数据也应被删除 本线程到目前为止讨论的问题涵盖了将事件组合成具有 2 列
  • 用于高效大规模图遍历的数据库

    我有一个大型二分有向图数据集 约 2000 万个元素 在当前的使用中 我运行的遍历算法每次运行约 500 000 个节点 这些算法有效 但历史上运行的是从文本文件加载到内存的数据 文本文件似乎是一个不好的方法 所以我将数据作为邻接列表传输到
  • 如何使用索引更改表的列?

    我想将带有某些索引的表中 a 列的列大小从 varchar 200 更改为 varchar 8000 我应该如何进行 既然是VARCHAR你正在增加尺寸 然后简单地ALTER TABLE ALTER COLUMN https learn m
  • 用户离开时如何正确插入时间( user_left 和 user_joined 具有相同的值)

    在这段代码中 我想获取用户加入和离开的时间并将其存储到数据库中 如果我在 连接 表和 左 表中获得相同的值 会发生什么情况 如何修复它以便它存储不同的值 Schema create user info function Blueprint
  • 存储和检索多个头像图像尺寸

    我正在建立一个论坛类型的网站 用户将有一个头像 主页将有一个小版本的头像 而单页面将有一个大版本的头像 因此 为了带宽的考虑 我将采用不同的大小 example png example thumb png 不同尺寸的首选存储和检索方法是什么
  • System.IndexOutOfRangeException:索引超出了数组的范围[重复]

    这个问题在这里已经有答案了 我正在开发一个 ATM 软件作为家庭作业 我想知道今天处理的交易总量 为此我编写了以下代码 public decimal getDayTransaction int accountid string date s
  • Cassandra 与 ZooKeeper 的事务 - 这有效吗?

    我正在尝试在 ZooKeeper 的帮助下为 Cassandra 实现一个事务系统 由于我认为我在数据库实现方面没有足够的经验 所以我想知道我的想法原则上是否可行 或者是否有任何重大缺陷 以下是步骤的高级描述 识别所有要编辑的行 键 和列
  • 多人/单人测验游戏的数据库设计

    我在这里看到了很多问题 但没有人适合我的问题 我正在尝试创建一个可扩展的 ER 模型 如果我想添加更多数据 则不会破坏几乎任何东西 所以我尝试创建的是 有两种类型的用户 比如说管理员和工作人员 他们有不同的角色 管理员可以对问题进行 CRU
  • 需要 SQL 选择查询帮助

    我的问题类似于SQL选择组查询 https stackoverflow com questions 11407601 sql select group query 但模式发生了变化 我想要不同的结果 如下所述 给定链接的解决方案没有给我正确
  • 如何检测数据库类型?

    我需要确保我连接的数据库是 MySQL 而不是 PostgreSQL 或 Microsoft SQL Server 我怎样才能知道正在使用哪种类型的数据库 第一个提示可能是如果您尝试使用 mySQL 数据库驱动程序连接到 PostgreSQ
  • iPhone只能使用SQLite数据库吗?

    iPhone 可以使用 SQLite 之外的其他数据库吗 比如 MySQL iPhone 只能直接在设备上使用 SQLite 作为数据库 这意味着 iPhone 内部没有 MySQL 服务器 但是您可以并且可以自由地拥有 您自己的 MySQ
  • 用 PDO 和准备好的语句替换 mysql_* 函数

    我总是做简单的连接mysql connect mysql pconnect db mysql pconnect host user pass if db echo strong Error strong Could not connect
  • 检索使用 Uniqueidentifier 插入的最后一行,它不是 IDENTITY

    我对一个查询感到困惑 我需要找出表中添加的最后一行 其中有一列数据类型为 Uniqueidentifier 列是 aspnet Applications ApplicationId 注意 该列是Uniqueidentifier 它不是IDE

随机推荐

  • 外键约束

    由于 FK 约束 两个表相互关联 我试图通过禁用所有触发器来更新这些表 但仍然收到以下错误 UPDATE 语句与 FOREIGN KEY 约束 FK TEST REFERRING REFPHYSI 冲突 冲突发生在数据库 ccdb 表 db
  • Vba 将 CSV 文件导入 Excel

    我正在尝试使用 VBA 代码将 Csv 文件导入 Excel 我希望它能够处理所有 Csv 文件 但事实并非如此 这是我的代码 Sub Input CSV Dim Wb As String Dim Arr Set Wb GetObject
  • 访问父表单

    我知道这个标题可能看起来很愚蠢 想不出更好的东西 抱歉 我有 2 个表单 C 主表单包含第二个表单的实例 有没有办法 从 form2 的实例访问 Form1 的运行实例 入口点 及其属性 每个人都告诉我要学习 OOP 我很久以前就明白了 但
  • 如何编写自定义查询codeigniter

    我有以下查询及其在 MySQL 中的工作 SELECT FROM usr booking WHERE shop id 1 AND services dates 2019 01 02 AND start time BETWEEN 10 00
  • MySQL 自动将字符串转换/转换为数字?

    MySQL 是否自动将字符串转换 转换为数值 这种转换是如何进行的 1234 1234 1abc 1 文本 1 鉴于units id是bigint类型 这个查询将如何解释 SELECT table FROM table WHERE id t
  • Talend:java.lang.UnsatisfiedLinkError:java.library.path 中没有 sapjco3

    我的 jar 和 dll 位于 Talend lib 目录中 路径和类路径已设置 我还下载并安装了 VC 2005 redistribution sp 1 补丁以及 SAP 提供的缺少的 dll 我尝试在 Windows 2003 机器和
  • Gekko 的最佳解决方案

    我想使用 hyperopt 进行超参数优化 但在找到超参数搜索空间的正确公式时遇到问题 我的问题的最佳解决方案是 0 4050 2100 2100 1200 0 0 450 150 我的尝试代码 from gekko import GEKK
  • 将URL请求的内容写入文件

    我正在尝试使用 python 从 php 文件中获取列表并将其保存到文件中 import urllib request page urllib request urlopen http crypto bot hopto org server
  • 检查文本字段是否包含javascript中的字母

    我是 Javascript 新手 我想知道是否有办法检查文本字段输入是否包含数字以外的任何内容 我知道如何在 Java 中做到这一点 但 Javascript 对我来说是完全不同的事情 是的 只是字符串上的标准正则表达式 var str m
  • 清除 Spyder 中的历史记录窗格

    我不知道 Spyder 历史保留了多少行 但是 3个月前执行的命令没有机会被搜索回来再次运行它们 历史记录中的大多数命令只是对 python 文件的调用 重新打开文件来运行它也很容易 启动 IDE 时必须加载这个长列表 从而增加了加载时间和
  • 使用 Python 模拟 Linux 中的击键

    如何在Python中模拟击键 我还想同时按下多个键 就像是 keystroke CTRL F4 or keystroke Shift A 考虑python uinput and evdev 的例子shift a与后者 from evdev
  • python(pygame)中动画速度的问题

    我正在制作一个忍者游戏 其中忍者必须通过跳跃 按空格键 来躲避障碍物 但是跳跃动画太快 忍者无法跳过障碍物 我希望它跳得慢一点 以便让它跳出障碍物 即使按下按键后松开 也能跳到394 y值 然后再下来 请注意 我是初学者 import py
  • Oracle SQL 选择匹配查询

    我有下面这个表 uid rid time type date time a11 1 1 5 4 2013 00 32 00 row1 a43 2 1 5 4 2013 00 32 01 row2 a68 2 2 5 4 2013 00 32
  • 如何用狮身人面像制作2列

    我想在我的文档中创建多个列 在全球范围内 我想做类似的事情这个主页 其中有 3 栏 一栏包含当前版本 一栏包含新闻和更新 以及基础知识 当我在谷歌上搜索 Sphinx 中的多列时 我发现将列表分成两列 这不是我的情况 在维基上 我发现的多列
  • 如何根据平均值、中位数、第 1 和第 9 十分位数值生成数据集?

    我有以下描述数据集的值 Number of Samples 5388 Mean 4173 Median 4072 1st Decile 2720 9th Decile 5676 我需要生成适合这些值的任何数据集 我发现的所有例子都要求你有标
  • PyQt5 TabWidget tabBarClicked TypeError:本机 Qt 信号不可调用

    我正在尝试使用 PyQt5 制作用户界面 如果我单击第 5 个索引选项卡 userSettings 函数将调用 但程序会引发此错误 self tabWidget tabBarClicked 5 connect self userSettin
  • python minmax仅使用递归

    我正在尝试构建一个函数 该函数接受一个列表并返回一个 最小值 最大值 的元组 例如 2 1 4 9 4 5 会回来 1 9 我尝试仅使用递归 并且希望执行此任务 而不使用其他可以使此操作变得非常简单的东西 例如 min max sort s
  • WP7 图像 Uri 作为 StaticResource

    我有一个 Windows Phone 7 应用程序 我正在尝试将一些常见元素移动到资源文件中 文本和样式工作正常 但我正在努力寻找正确的方法来划分 Uri 这是我正在尝试开始工作的代码示例
  • 权限从publish_stream迁移到publish_action

    我想知道您是否拥有publish stream 的用户权限 并且您希望从现在开始publish action publish stream 是否涵盖这两者 还是我们需要重新请求用户权限 如果是这样 检测他们是否获得此权限等最简单的方法是什么
  • SaaS - 共享数据库中租户特定的查找数据

    我正在开发基于多租户 SaaS 的应用程序 并使用共享数据库在 TenantId 列的帮助下存储所有租户记录 现在的问题是我有一些查找记录列表需要为所有租户共享 例如游戏列表 游戏桌 Id GameName 还有另一个表用于仅存储租户特定记