sql - 如何使列不为空,但在第一次创建时它确实需要为空
问题描述
我有两张桌子,tableA
和tableB
。
tableA(id, tableB_id)
tableB(id, tableA_id)
在 中创建记录时tableA
,其 FK 值tableB_id
尚不清楚。所以我别无选择,除非它可以为空。
但是在它被创建之后,行 intableB
被填充,然后行 intableA
被更新。
但是,发生这种情况后,我想确保它tableA.tableB_Id
永远不会为空(为了数据一致性)。
有没有办法确保这一点?
我的第一次尝试是使tableA.tableB
_id 不为空,但这会阻止在tableA
.
我能想出的唯一想法是创建另一列:
tableA.is_initialized
然后当tableA.tableB_id
被填充时,设置tableA.is_initialized
为true。
然后添加一个约束,如果is_initialized
为真,则tableB_Id
不能为空。
我在正确的轨道上吗?
更具体地说,数据模型:它是表 A 和表 B 之间的一对多关系。但是我需要知道哪一个相关的tableB记录是那个default
(当前正在使用的),所以我将它存储在tableA中。也许有更好的方法在数据库中对此进行建模,但到目前为止它运行良好。
解决方案
推荐阅读
- kafka-rest - Kafka Rest 代理相互认证
- x11 - XShmPutImage 的 X11 MIT-SHM 性能
- angular - 使用 ng-build 编译后包含重音的字符串消失
- python - Alphabatic Anagrams 不适用于包含多次出现的字母的单词
- arrays - 在 Swift 中改变 For 循环的范围
- javascript - 如何将字符串分成小于定义长度的部分
- web-component - 在 document.ready 上将子元素从 shadow dom 移动到 light dom
- java - 黄瓜步骤定义未链接
- flutter - 如果没有调用它,我如何弹出所有路由并推送一个新的 popUntil()
- reactjs - 数据不会 console.log 异步(React Native)