`

数据库设计的一些疑惑

阅读更多
1:数据库中的数据应该采用逻辑删除还是物理删除?
引用
最好不要物理删除,应该清楚,业务上所谓的删除和技术实现上的删除不是一个意思

2:数据库要记录数据的变更改怎么设计?
引用
要记录数据的变更记录,可以采用一个history表来记录历史变化。比如设计一个表叫做user,还有一个叫做user_history。那么每次user永远记录最新的记录,而user_history则记录每次变化之前的记录。

3:一年的数据量大概有700到1000万条记录的样子,所以在这里面操作起来很慢,然后系统的并发量也很大,平均下来,大概70个请求/s,原来的老系统不怎么稳定
引用
1.一年700-7000万条,70q/s,这个能算是数据量很大并发很大?一般数据库都能轻松处理吧。注意数据库配置、索引就可以了。

2.最简单的方法,就是利用数据库的表分区功能,这个功能Oracle,SqlServer2005都支持的。就利用表的时间字段来进行分区就可以了。这样按日期进行查询的时候速度比普通索引要快很多。

3.LZ的数据量其实并不算大,可以说如果对于oracle这样的数据库简直就是小菜。每天晚上可以定时做索引,定期做物理备份。

4.分区表就好了,没必要一个月一张表

5.分区表技术目前已经很成熟了。如果用的是oracle,目前,Sybase数据库也支持此项技术。所以几千万条记录并不会引起太大的瓶颈。

4:博客 活动 BBS 知识库文章 新闻 ...这些东西都有一个title 一个content
方案一 抽象到一起,建item表,以及item的分类以及评论,共3表,用item_type判断属于哪个种类,好处是可以少建很多模型,开发量少一点,缺点是性能差一点,灵活性差一点,还会有一些数据冗余。
方案二 传统的方式,有啥建啥,博客 活动 BBS 知识库文章 新闻,以及他们的分类和评论表,3*5=15个表。
引用
1:建item,然后其他的model继承item,因为这些model还有扩展的可能,so,必须分开,不能用item_type。。。
2:数据库建模和你的领域建模 , 还是有一定区别的
3:这种多态结合(polymorphic association)是不被推荐的,最大的问题是低效的索引。
4:项目小、数据量不大、一个人做,无所谓。如果多人分工、数据量有点大,第一种是不太好的。

5:关于数据库设计还需不需要的主外键的问题
要的理由就是,保持数据的完整性,而不要的理由就是可以提高数据库的性能。大多数认为要。也有认为不要的:表之间的关系在代码层关联。
引用
其实,对于主外键的建立也没有一个必然的规律,如果为了性能而言,不加是有一些提升,但是数据完整性则归到了程序中,写程序的时候就一定要对数据进行控制,特别是级联删除和更新,当然,orm的出现可以是我们在对象上再次构建一种这样的对象之间的关系,但是对于数据的完整性而言,见外键则是一种很好的约束,所以,还是针对应用采取不同的方式
分享到:
评论

相关推荐

    22.互助答疑系统-基于JSP+ Mysql+JDBC+SSM设计与实现(可运行源码+数据库+设计文档+lw)java期末大作业

    22.互助答疑系统|基于JSP+ Mysql+JDBC+SSM设计与实现(可运行源码+数据库+设计文档+lw)可运行源码(含数据库脚本)+开发文档+lw(高分毕设项目) java期末大作业毕业设计项目管理系统计算机软件工程大数据专业 内容...

    数据库外键,用还是不用?

    近在做一个派单系统数据库设计,在设计中有些疑惑的地方中午在网上发起一个话题讨论。我把这个讨论流程发过来,大家可以可以看看。  也可以发表一下自己的意见。  对于主/外键/索引来说,在一些开发团队中被...

    基于数据库的VB课程设计

    我切实的体会到VB这门课程是有用处的,它解释了我平时学习中的很多疑惑,让我增长了很多见识。 5.参考文献 [1] 刘天惠.Visual Basic程序设计教程[M]. 北京: 清华大学大学出版社,2003.12-24 [2] 龚沛曾.Visual ...

    毕业设计管理系统【数据库脚本】

    毕业设计管理:查看审核论文,显示已获取答辩资格的名单; 学生: 课题管理:选择课题和查看结果; 进度管理:各文档完成情况,查看课题资料、查看阶段任务; 文档管理:可上传学生论文和查看; 提问管理:提出疑惑...

    ssm高校毕业论文管理系统小程序(java毕业设计完整源码+说明文档+LW).zip

    ssm高校毕业论文管理系统小程序(java毕业设计完整源码+说明文档+LW) 系统主要包括管理员,学生和教师;主要包括:首页,个人中心,学生管理,教师管理,课程信息管理,选题信息管理,论文信息管理,疑惑留言管理,...

    MySQL/数据库-图书馆管理系统 lms => Library Managememt System

    简介 intro lms是一个简单的图书馆管理系统,界面是基于qt开发的,用mysql存储...数据库脚本导入 import sql 已经为mysql配置过环境变量的直接打开cmd或者powershell,输入以下命令即可 mysql -uroot -p create databa

    安卓移动端的人力资源管理系统的设计与实现(论文+源码)-kaic.doc

    2.1 研究设计中要解决的疑惑 2.1.1 数据库表间关联 2.1.2 系统安全性 2.2 实现中使用的重要技术 2.2.1 JSP技术 2.2.2 MySQL技术 2.2.3 Tomcat技术 3 需求分析 3.1 系统用例图 3.2 系统功能概览 4 系统设计 4.1 系统...

    java语言城市公交查询系统(源码+数据库+视频+论文).rar

    网站公告发布功能:进行一些实时新闻的发布,包括线路的绕行,公交车价格的调整,以及一些实时的路况信息,均可通过此来查询,旨在为用户提供一个实时的,便捷的公交插叙系统。 源码都是经过本人亲测的,都是完整可...

    JAVA毕业设计之springboot059课程答疑系统(springboot+mysql)完整源码.zip

    老师可以回答学生的问题,帮助学生解决疑惑。问题分类:问题可以按照不同的学科和知识点进行分类,方便用户快速找到相关问题。搜索功能:用户可以通过关键词搜索问题,快速定位到自己感兴趣的问题。用户管理:管理员...

    asp.net知识库

    DbHelperV2 - Teddy的通用数据库访问组件设计和思考 也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典...

    毕设&课设&项目&实训-毕业设计项目,是一套前后端分离的电子商务系统。.zip

    包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...

    第十五周第二次会议记录1

    第十五周第三次会议记录数据库的设计会前准备资料:讨论截图:在商品标签上陷入分歧和疑惑。

    基于SSM的高校毕业LW管理小程序.zip

    java技术 MySQL数据库 SSM框架 本系统主要包括管理员,学生和教师;主要包括:首页,个人中心,学生管理,教师管理,课程信息管理,选题信息管理,论文信息管理,疑惑留言管理,疑惑解答管理,答辩名单管理,系统...

    第十五周第三次会议记录1

    第十五周第三次会议记录数据库的设计会前准备资料:讨论截图:在商品标签上陷入分歧和疑惑,后来先各自去查阅网上资料,参考网上的设计方法,最终解决了困惑。

    室内设计装饰公司网站 v1.0.zip

    使用多层开发模式开发,更灵活的构架,理论上支持所有.net支持的数据库。 多重缓存机制,让网民超快地打开您的网站,让人觉得打开您的网站很“爽!”。 不会像生成静态网页那样产生大量垃圾文件占用空间。 ...

    sql server 关于设置null的一些建议

    我们在设计数据库表的时候,总有些疑惑,到底是允许为NULL还是不允许为NULL,本文帮大家解除这个疑惑。

    java-ssm高校毕业论文管理系统微信小程序源码(源代码+说明文档)

    系统包括首页,个人中心,学生管理,教师管理,课程信息管理,选题信息管理,论文信息管理,疑惑留言管理,疑惑解答管理,答辩名单管理,系统管理等功能。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java ...

    ncurses-devel-5.5-24.20060715.x86_64.rpm

    假设在使用termcap或者terminfo的情况下,每个应用程序都在访问terminfo数据库并且做一些必要的处理(比如发送控制字符等等)。不久这些操作的复杂度将会变得难以控制。于是,curses诞生了。curses 的命名是来自一个...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    LED装饰公司网站 v1.0.zip

    使用多层开发模式开发,更灵活的构架,理论上支持所有.net支持的数据库。 多重缓存机制,让网民超快地打开您的网站,让人觉得打开您的网站很“爽!”。 不会像生成静态网页那样产生大量垃圾文件占用空间。 ...

Global site tag (gtag.js) - Google Analytics