跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教数据库怎么设计:字段之间的依赖关系
未分類
2 9 月 2020

请教数据库怎么设计:字段之间的依赖关系

请教数据库怎么设计:字段之间的依赖关系

資深大佬 : ericgui 20

比如有个表 table_blog

那么,这个表有 2 个字段,一个是 status,比如说‘草稿’,‘已发布’,‘审核中’
那么,要求,如果 status 是‘已发布’的时候,’publish_at’ 这个字段必须有值

这可以通过数据库来做约束吗?
还是说,没办法,只能通过代码( ORM,Model 等)来做约束

大佬有話說 (9)

  • 資深大佬 : securityCoding

    代码

  • 資深大佬 : weizhen199

    可以加,但一般不会给数据库加这种约束,建议应用自己解决

  • 資深大佬 : abcbuzhiming

    记得 oracle 还有 postgresql 这样比较偏强约束的 SQL 数据库是可以实现这种字段约束的

    但是 MySQL 好像没有,当然也可能我孤陋寡闻了,如果有请人知道请麻烦告知

    现代关于数据库更多强调的是事务性,字段约束用的比较少了,约束更多在应用层上实现

  • 資深大佬 : hyperbin

    触发器

  • 資深大佬 : rbe

    postgres 有 exclusion 约束和 check 约束。http://www.postgres.cn/docs/12/ddl-constraints.html#DDL-CONSTRAINTS-EXCLUSION
    但一般还是通过 orm 来做这个事比较好吧。

  • 資深大佬 : kiracyan

    update 的时候做 publish_at 的判断

  • 資深大佬 : kanepan19

    代码控制

  • 資深大佬 : lychs1998

    代码约束。

    以下我个人理解,不一定对:
    按数据库设计的“规范”来说,这种依赖关系是不符合数据库设计规范的。
    可以考虑拆成:draft(草稿)、review(审核)、publish(发布)、article(文章)四个表。

  • 資深大佬 : kanepan19

    另外建议, 发布状态 , 和 审核状态分开, 不同含义的状态分离 , 更有利于控制.

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具