使用另一个表中的其他列获取一个表的条目
Posted
技术标签:
【中文标题】使用另一个表中的其他列获取一个表的条目【英文标题】:Getting a entry for one table using the other columns in another table 【发布时间】:2021-09-12 18:45:46 【问题描述】:我对我的数据库设计有些苦恼。请参考此图像以获得清晰的理解。
在 tbo_current_status 表中,有一个 active_status 字段,我想用 tbo_status 中的任何一个字段(status_type_1、status_type_2...等)填充它。我怎样才能做到这一点?
如果您有任何不同的想法,请随时分享:)
【问题讨论】:
数据库设计肯定有问题。在名为tbo_status
的表中,我希望每个状态有一行。通常单独的列来实现一个数组或列表是一个很大的危险信号。当然,您还没有描述您要做什么,因此无法真正回答这个问题。
表 tbo_status 具有每个项目的状态类型,例如 design->tested->prod,而另一个项目可以具有 code->review->deploy。所以我就这样尝试了。
【参考方案1】:
我认为将 tbo_status 设置为 [Project ID]、[Status Type Number] 和 [Status Display Name] 字段可能更容易,然后将每个状态都设置为记录。然后您可以使用状态类型编号作为 tbo_current_status 中的外键。它没有明确强制有 5 种状态,就像您通过将它们设为列所做的那样,但是以您尝试使用它们的方式引用它们更容易。
如果您想强制执行 5 个状态,也许您创建另一个表 tbo_status_type_list,它定义了 5 个数字,并将其作为 tbo_status 表中状态类型编号的外键。
【讨论】:
是的,我认为第一个解释很好,一个快速的问题认为我在 tbo_current_status 中有 [Status Type Number] (作为外键)作为数字 1 。是否可以在 tbo_current_status 中将其更改为数字 2 [Status Type Number](即不同的状态显示名称)? 我认为这不是问题,因为它会从一种状态转移到另一种状态,您可以更新该行的外键值。以上是关于使用另一个表中的其他列获取一个表的条目的主要内容,如果未能解决你的问题,请参考以下文章