数据库设计注意

简介: http://blog.csdn.net/chenhuoren/article/details/4941131 搞数据库,从毕业出来工作到现在也有好几年了,总的来说,自己对数据库的架构设计算不上很精通,但还是把自己在设计中的经验说说吧,希望对大家今后的设计有帮助。

http://blog.csdn.net/chenhuoren/article/details/4941131

搞数据库,从毕业出来工作到现在也有好几年了,总的来说,自己对数据库的架构设计算不上很精通,但还是把自己在设计中的经验说说吧,希望对大家今后的设计有帮助。

我个人认为,在数据库的架构中,需要注意以下的几个问题。

一:数据库名称命名要简洁,并体现其应用或功能。如库名QCOA,QC为公司简称,OA为OA系统中的主数据库;为了防止被分析破解,表名建议采用子系统简写+功能单词首字母,如审批管理子系统中:OAMD,该表的字段名为MD001,MD002......MD022并预留五到十字段供扩展,对常用表还应定义十个以上的自定义字段,供客户自定制,自定义字段统一命名UDF01...UD99。表和字段都应该在数据字典作标准,实际开发时,用向导从数据字典生成具体应用数据绑定窗口和控件,不过,这样设计的数据库,在交付用户使用的时侯需要同时交付数据库说明文档,方便客户的数据库管理。

二:嵌套关系的数据表,一定要在数据字典中注明,并备注好关键字段。注意这里嵌套并不一定是主从表。如ERP系统中的工单表,一个成品对应一张工单,该成品由N个半成品制成,又是N张工单,N个半成品可能又可细分若干层的半成品。一般就由单头单身表二个表表示这样的数据,也可用一张表。

三:数据字典的设计,表和视图都必须记录在字典中;其对应的触发器和存储过程也必须备注中对应的表中;表、视图必须按模块分类管理。

四:严格控制存储过程的使用,这是血泪教训呀,我们公司的HR有600多个存储过程,三四个人二三批维护修正了十个月都没完全搞定。这就是开发时的随意和图修改方便造成的恶果,那个别人开发的HR在我看来是垃圾,我都不碰那个东西。建议,除非大数据量的处理,则不用存储过程!业务逻辑封装到程序业务类中,或将SQL语句放在配置文件或数据库中,动态装入执行。

五:表单设置,即实际应用时某些有单号(流水号)的表,如订单表,其单号由单据性质和流水号组成。建议:建一个单据设置表,统一保存这些表的表单设置和最大单号,也方便用户进行单号的设置,以及单号的生成(可以据设置表中保存的设置和最大单号值,用存储过程无冲突生成最大单号)。我的数据库表一般都这样设计的,但现在看网上说,好像对这种方法不认可,主要在于这样设计的数据库关系繁多,没有使用存储过程来得方便。这里就看自己的需要吧,我的建议还是用我的办法,因为这样的话,程序的改动不会带来数据库大的变动。

六:在数据库设计中,并不是关系越多越好,而应该是在适度的范围内,这需要经验的积累,再这里一两句也说不清楚。模块与模块之间的数据交接,应该最多只有一个关系的存在。

七:不要轻易的允许某些字段为空,所有允许为空的字段必须是基于用户需求,而不是出于设计上方便的考虑。这样带来的好处是让详细设计中的某些错误和疏漏(如在设计中没有考虑对非空字段的内容检查)在编码和单元测试阶段就被发现,从而避免了进一步扩散,有助于提高软件的质量。

有评论曰:严重不同意你的第四条。看来你没在大型公司做过数据库

目录
相关文章
|
2天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
12天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
491 201
|
4天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
626 157
|
10天前
|
人工智能 自然语言处理 安全
国内主流Agent工具功能全维度对比:从技术内核到场景落地,一篇读懂所有选择
2024年全球AI Agent市场规模达52.9亿美元,预计2030年将增长至471亿美元,亚太地区增速领先。国内Agent工具呈现“百花齐放”格局,涵盖政务、金融、电商等多场景。本文深入解析实在智能实在Agent等主流产品,在技术架构、任务规划、多模态交互、工具集成等方面进行全维度对比,结合市场反馈与行业趋势,为企业及个人用户提供科学选型指南,助力高效落地AI智能体应用。
|
4天前
|
数据采集 消息中间件 人工智能
跨系统数据搬运的全方位解析,包括定义、痛点、技术、方法及智能体解决方案
跨系统数据搬运打通企业数据孤岛,实现CRM、ERP等系统高效互通。伴随数字化转型,全球市场规模超150亿美元,中国年增速达30%。本文详解其定义、痛点、技术原理、主流方法及智能体新范式,结合实在Agent等案例,揭示从数据割裂到智能流通的实践路径,助力企业降本增效,释放数据价值。
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
634 46