明天就要软考了,我发现了数据库三范式之第一范式好像过时了

8 小时 34 分钟前
 dushixiang

第一范式( 1NF )要求数据库表中的每个列都是不可再分的原子值,即每个列都不能包含多个值或值的列表。

现在使用 pg 的时候经常用 json 格式了,是不是违反了第一范式?

3314 次点击
所在节点    数据库
47 条回复
fingerxie
8 小时 29 分钟前
我也要软考了,我还一天没学 😭
aes114514gcm
8 小时 25 分钟前
注意适用范围
pg 的定位是(Object-Relational Database Management System, ORDBMS)
不是纯粹的关系型数据库
dushixiang
8 小时 25 分钟前
@fingerxie 明天别去受罪了,在家睡觉吧
dushixiang
8 小时 24 分钟前
@aes114514gcm mysql/sqlite 也有 json 格式的
happyhou
8 小时 24 分钟前
是的,违反了 1NF 。
Bigstupidcat
8 小时 21 分钟前
没事,考了也没啥用,除了进了个人才库,屁用没有,有这精力,准备准备考公吧
Aethyr
7 小时 59 分钟前
json 格式看场景
互联网中第三范式才是人均不遵守
momocraft
7 小时 55 分钟前
这是没人会 100%遵守的理论规则 比如用这个范式怎么存储地址
Rickkkkkkk
7 小时 50 分钟前
这种东西比接口的 RESTful 规范还没用一点

感觉会把这种东西不断传播作为正确的人都是从来没有长期开发过任何一个复杂的商业系统。

统一认定为没真正上过班
adoal
7 小时 50 分钟前
你都用 JSON 了,还想什么范不范式的
foxhunt
7 小时 47 分钟前
你最好想想为什么违背范式,能带来哪些好处
明天要考
beautyplus
7 小时 46 分钟前
json 就是原子值,如果你存的 json 都是同字段的,那确实违反了,应该拆成原子
cowcomic
7 小时 45 分钟前
是的,现在很多系统数据库的设计都是反范式的
三范式并不是一定要遵守,只是遵守但是能够帮你避免一些问题,但是可能会降低查询效率之类的
可以根据自己的需求来打破范式,但每打破一个范式,就要增加对应的处理方案,避免引入新的问题,比如数据结构教研,数据同步更新等等
huangsijun17
7 小时 44 分钟前
@aes114514gcm #2 但是,MySQL 存 JSON 的场景也不少了。是个 SQL ,甚至 NoSQL ,只要能存长字符串的,都会有人存 JSON 。
zhuangzhuang1988
7 小时 39 分钟前
pg 还有 array
airqj
7 小时 35 分钟前
居然有人说数据库范式没啥用
PS: 1981 的图灵奖就是颁发给研究数据库的,而数据库范式是其中很重要的一部分
TataJiang
7 小时 35 分钟前
三范式并不是不能违反的
catning
7 小时 30 分钟前
范式没有万能的,具体还要根据你自己业务和上下游去决定。
但是你不能不学,不能不了解这些范式是为了解决什么问题产生的。试想一下,一张表里只有 id 和 data 俩字段,做业务时候一把 data select 出来,然后在程序中用代码逻辑组织数据结构或者进行过滤,光想想就灾难。
soleils
7 小时 17 分钟前
@airqj 但那是 1981 啊, 祖宗之法不可违?
shiny
7 小时 14 分钟前
先懂得规则,然后才能知道何时打破规则,代价是什么,收益是什么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1214684

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX