数据库的业务表如何设计?有什么方法论吗?各位有什么资料让我学习一下,谢谢!

2021-10-22 11:50:22 +08:00
 kikione
4393 次点击
所在节点    程序员
40 条回复
0x0208v0
2021-10-22 11:53:42 +08:00
同问。感觉这东西很依赖经验
yanzhiling2001
2021-10-22 11:54:33 +08:00
一样求教
liuzhedash
2021-10-22 11:56:55 +08:00
kikione
2021-10-22 12:06:23 +08:00
@liuzhedash 感谢
leonme
2021-10-22 12:16:16 +08:00
了解基本范式之后,其实依赖于你对业务系统的理解
tabris17
2021-10-22 12:43:08 +08:00
@liuzhedash 这表结构设计得很糟糕,密码和用户信息竟然放在一张表里
cnoder
2021-10-22 13:00:06 +08:00
为了是方便存、取、修改以及扩展,范式+一些小技巧+业务理解+自己的思考
flniu
2021-10-22 13:55:51 +08:00
推荐两本书:
《数据库系统概念(原书第 7 版)》 https://book.douban.com/subject/35501216/
《数据密集型应用系统设计》 https://book.douban.com/subject/30329536/
当然这两本都比较大部头。但如果在初入职场的时候花几周时间爬完这两本,绝对受益整个职业生涯。
qsnow6
2021-10-22 14:05:45 +08:00
@tabris17 那应该如何设计,有资料吗
qq8331199
2021-10-22 14:22:22 +08:00
@tabris17 为什么不,说一下你的理由
Yi23
2021-10-22 14:23:55 +08:00
@qsnow6 登录方式和用户信息分开存储,使用用户 ID 进行关联。
loux
2021-10-22 14:40:58 +08:00
@tabris17 密码单独一张表的意义是什么?
kiripeng
2021-10-22 14:50:02 +08:00
@loux 数据脱敏吧
qsnow6
2021-10-22 14:54:27 +08:00
@kiripeng 这样设计的话好扩展第三方登录
wangpugod2003
2021-10-22 14:58:56 +08:00
以前的单体服务 MVC 的时代和实现的微服务时代,都不同,演进很多代了。
现在的微服务时代,数据库设计是轻量级的。例如外键,以前很流行,现在基本不用了。
建议从项目实践中模仿到提升,从设计 1:1,1:n 开始,到 n:n 。很多时候不走一些弯路是不知道为什么那样设计不好。
allstack
2021-10-22 15:01:17 +08:00
尽量遵循三范式
kanezeng
2021-10-22 15:01:59 +08:00
@loux 我觉得主要是现在的话,密码只是登录方式的一种,所以密码独立出来一张表,或者和其他登录方式整合
liuxey
2021-10-22 15:06:40 +08:00
规范毕竟是死的,能否设计出高效易用的表结构对经验要求极高。慢慢来吧,趟的坑多了就知道了
saulshao
2021-10-22 15:17:31 +08:00
数据库设计确实很大程度上依赖于经验,能提供给你的书讲的都是原则性的东西。
跟怎么用 Spring 框架类的书比较,数据库设计类的书更像是反复在给你讲什么是类,类设计的通用原则是什么。
数据库设计从理论上来说,需要深刻理解范式,然后是集合论基础。
其它我觉得就完全依赖于经验和实践了。
正如上面提到的密码单独存张表,这其实是最近这些年的实践才有的。
其实大部分的企业应用,包括 ERP 、PDM 之类的系统,基本都是密码和用户名放一张表里。
loux
2021-10-22 15:25:15 +08:00
@kanezeng 那属于业务上的扩展,第三方登录分表存储,密码不属于第三方在没有业务需求的情况下放一张表里没有什么问题,他那句话说的好像密码跟用户信息放一起是无法理解的事情一样。

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

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

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

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

© 2021 V2EX