gpt4 book ai didi

mysql - 如何管理MySQL数据库中的条件列?

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:18 25 4
gpt4 key购买 nike

我和this old post有同样的问题.

但在我的例子中,我没有表格,我只有两个列。我解释:

***mytable
id
name
conditional_1 (is a foreign key int)
conditional_2 (int)

包含的数据是这样的:

id  name   conditional_1  conditional_2
1 oscar 1 NULL
2 rene NULL 67
3 hello 2 NULL
4 stack 4 NULL
5 overf NULL 98

我做的对吗?或者我需要如下内容:

***mytable
id
name
cond_type
conditional_id (fk tbl_post)

***condtable1
conditional_1

***condtable1
conditional_2

这种情况的最佳解决方案是什么?

最佳答案

通过在同一个表中使用列,您可以强制执行排他性和引用完整性。换句话说,您可以确保在给定的行中,至多有一个字段是非 NULL1 并且 引用正确表中的现有行。或者,您可以考虑继承。有关两者的更多信息,请查看 this post .

cond_type 之类的东西从 DBMS 的角度来看没有任何意义 - 您将放弃参照完整性的自动实现。在并发环境中手动执行此操作可能不正确或很慢。2


1 不幸的是,MySQL 不强制执行 CHECK 约束(这将是强制排他性的自然机制),但您仍然可以依赖触发器。

2 您需要非常小心地锁定以避免竞争条件,即使您做得对,您也可能会损害过程中的可伸缩性。

关于mysql - 如何管理MySQL数据库中的条件列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18884059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com