阅读更多

4顶
0踩

数据库

翻译新闻 20个数据库设计的最佳实践

2012-02-06 17:58 by 资深编辑 luiang1018 评论(1) 有5667人浏览
1、使用定义明确的表或列名,并保持一致(例如,School、StudentCourse、CourseID)。

2、使用单数形式的表名(即,用StudentCourse而非StudentCourses)。表代表了实体的合集,不需要复数形式。

3、不要在表名中使用空格。否则你将在定义表时不得不使用“{”、“[”等字符(即为了访问表Student Course,你须得书写“Student Course”。使用StudentCourse足够了)。

4、不要在表名中加入不必要的前缀或后缀(即,命名School即可,不必为TblSchool、SchoolTable等)。

5、加密密码,保证安全性。需要时可在应用中解密它们。

6、在所有的表中使用整型ID字段。即便眼下ID还用不着,将来也会有用到的时候(例如在关联表中、索引等)。

7、使用整数(或相关)类型的数据列来创建索引。Varchar列索引会导致性能问题。

8、对布尔值使用bit字段。使用Integer或Varchar类型存储毫无必要。同时,在这些列名中加入Is描述。

9、对数据库访问进行验证。任何用户都不应给予admin角色。

10、若非必要的话,避免使用“select *”查询语句。为了更好的性能,请使用“select [required_columns_list]”。

11、若程序代码很大,可使用ORM(对象关系映射)框架(如Hibernate、iBatis)工具。关于其性能问题可通过详细配置参数来应付。

12、将那些不使用或不常用而又较大的表(table parts)区隔到不同的物理存储空间,以便提供更好地查询性能。

13、对重要的数据库系统,使用灾难恢复方案和安全服务,比如故障切换集群(failover clustering)、自动备份、复制等。

14、为了保证数据完整性,请使用约束(如外键、Check、Not null约束等)。不要给予对应用代码的完整控制权。

15、缺乏数据库文档的习惯非常不好(evil)。用ER图对数据库设计模型进行描述。同时记得编写触发器、存储过程等脚本的代码。

16、对频繁进行的查询使用索引。Analyser工具可用于决定index在何处定义。对于查询获取大量列,聚簇索引(clustered index)通常更好。而对于点查询,可使用非聚簇索引。

17、将数据库服务器与Web服务器放置在不同的计算机中。这可以提供更好的安全性能(攻击者不能直接访问数据),而且由于可以限制访问请求数及进程量,服务器也能获得更的CPU及内存性能。

18、图像和Blob列一定不要定义在查询频繁的表中,这也是出于性能考虑。可将这些数据放在单独的表中,并在查询表中建立指向它们的指针。

19、规范化(Normalization)是必须的,以进一步优化应用性能。否则可能面临过多的数据副本,当然过渡规范化(over-normalization)则会导致大量跨太多表的连接。这两者都会影响到性能。

20、同样也要在数据库建模及设计上花些功夫。若为此省下时间,则很可能面临10倍乃至100/1000倍的维护/重新设计成本。

Via  javacodegeeks

4
0
评论 共 1 条 请登录后发表评论
1 楼 H_eaven 2012-02-14 09:11
StudentCourse
STUDENTCOURSE
STUDENT_COURSE

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 小爱触屏音箱 2020.05.11稳定版 更新固件

    小爱触屏音箱的更新固件,一个尝试破解的网友分享出来的,分享一个官方的更新固件,但是据获取者介绍,更新包是加密的,有能力的可以尝试研究一下。

  • 多媒体计算机用什么音箱好,小巧又不失音质 桌面2.0电脑音箱推荐榜

    小巧又不失音质 桌面2.0电脑音箱推荐榜2018-06-18 18:00:0486点赞270收藏105评论这一篇就主要推荐下桌面2.0电脑音箱,对于有限的桌面,小巧又不失音质的2.0有源电脑音箱是个不错的选择,满足日常听歌,看电影及游戏...

  • 树莓派搭建智能音箱

    前言 最近准备做小车的语音控制,经过多种方案选择,最终决定采用智能音箱+MQTT的形式。MQTT的内容我们以后有机会再说,这篇主要记录一下智能音箱的搭建。 准备工作 硬件

  • (推荐)小爱触屏音箱LX04_2.34.5-官改-(开发版)SP5

    (推荐)小爱触屏音箱LX04_2.34.5-官改-(开发版)SP5,可以安装第三方,详细刷机教程 http://t.csdn.cn/XdPag

  • 台式计算机上的音箱应怎么接,台式电脑音箱和两个扬声器应该怎样连接

    有源音箱和无源音箱:电脑音箱主要分为两个类型的音箱,有源音箱和无源音箱。分辨这两个音箱的方法很简单。有源音箱是内置有一个小功率功放,直接通过音箱线插在电脑的麦克风接口,然后在接通电源即可正常工作。无源...

  • 推荐一些煲音箱的音乐

    推荐一些用来煲箱的音乐 煲音箱当然要找音质好的音乐,首选无损音乐。  低音:《一意孤行》, 《sade》 kenny g  中音:《天堂》腾格尔  高音:《瓦妮莎的微笑》克莱德曼  高音: 梁祝  中音:情人的眼泪...

  • 如何在电脑上连接两个 Bose 蓝牙音箱

    您可以将您的 Bose 扬声器配对在一起,然后使用 Bose Connect 应用程序(推荐)或扬声器的控制按钮在以下模式下播放: 派对模式(同时播放左右扬声器) 立体声模式(分隔左扬声器和右扬声器的声道) 请参阅 Bose ...

  • 如何用树莓派做一个家庭语音助手/智能音箱

    这学期有一个人工智能导论需要做一个课程设计,于是我就打算搞个家庭语音助手交上去,实现的功能有语音唤醒、语音合成、语音识别、控制家电、询问日期、询问时间、询问星期、 询问天气情况、播报新闻、人脸检测、...

  • 多媒体计算机用什么音箱好,5款性价比高的电脑小音箱推荐(每一款音质都相当ok)...

    作为学生党,便宜、实用是选购音箱首要考虑的因素,很多人不会花大价钱为自己添置一台音箱,而下面这些音箱都有着高性价比,且在同价位中有着不错的音质,可以极大地提高看电影、玩JBL PS3300 多媒体电脑音箱JBL PS...

  • 计算机配置音箱便宜,电脑音箱买什么价位的好 六款适合不同群体的音箱推荐...

    下面小编推荐了六个群体适合的电脑音箱推荐,来看看有没有你喜欢的款式吧。 电脑音箱买什么价位的好1、土豪音箱Hifiman X100这是一款微型的桌面发烧音响,搭配低音炮的话参考价格为2999元,要是不要低音炮的话就更...

  • Android蓝牙开发系列文章-其实你的手机可以变成一个蓝牙音箱

    目前a2dp相关的内容有: 《Android蓝牙开发系列文章-AudioTrack播放PCM音频》 《Android蓝牙开发系列文章-蓝牙音箱连接》 我们通常直接手机听歌或者接个蓝牙音箱来听歌,其实你的手机也可以变成一个蓝牙音箱来使用...

  • 智能音箱场景下的性能优化

    QCon是由InfoQ主办的综合性技术盛会,今年是Qcon举办的第10个年头,半吊子全栈工匠有幸作为演讲嘉宾分享一个近两年来的实践经验——智能音箱场景下的性能优化,隶属于曾波老师出品的“场景化性能优化”专场。...

  • 小爱音箱播放局域网NAS上的音乐(httpRandomMusic)

    近期看到github上有个项目让小爱音箱播放局域网NAS上的音乐,项目是用python写的,博主应该是对相关配置比较熟悉,README说明写的相对简略,折腾了几天才算简单实现,略做记录,有相同需求的朋友可以参考。...

  • 智能音箱中喇叭腔体的参数测量

    一款好的音响,喇叭是非常关键的一个零部件,基本上可以说决定了音质的成败,那么一个好的喇叭SPL是怎么看呢, SPL(声压级):是指喇叭在通以额定阻抗1W的电功率的电压时,在参考轴上与喇叭相距1m的点上产生的声压.单位...

  • 推荐 4个有趣实用的 ChatGPT 开源应用

    这篇文章介绍了基于 ChatGPT 的4个有趣实用的开源应用。这些应用包括一个让你使用ChatGPT时生产力翻倍的快捷指令网站,连接了ChatGPT和计算机视觉基础模型,支持图片的发送和接收,以及一个智能语音对话机器人,可以...

  • 论AI在叮咚智能音箱中的演进和应用

    导读:顶级科技公司都在抢夺智能语音交互的入口权。...总结,AI在智能音箱的应用,会更加方便用户的学习,使用,目前降噪比较好的也就是搜狗和讯飞的产品,AI的持续应用必定会更加方便用户的使用! ...

  • 音箱箱体的设计形式

    在DIY中有一句非常流行的话,那就是“好料不一定堆出好货”。好的声音单元也不一定就有好的声音,因为线路的整体设计、布局是非常重要的,另外还有个比较重要的因素就是箱体的设计。

  • 小爱音箱怎么装app_小爱音箱app

    小爱音箱app是小米为旗下的智能AI音箱提供的配套软件,小爱音箱app可以让你通过手机远程控制小爱同学。软件内置了语音助手,你可以直接对着手机说话让小爱同学帮你做什么事,你可以通过小爱同学实现语音控制家居设备...

  • linux基础进阶笔记

    linux基础进阶笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4493093&spm_id_from=333.999.0.0&desc=1

Global site tag (gtag.js) - Google Analytics