`

数据库设计的一些疑惑

阅读更多
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的出现可以是我们在对象上再次构建一种这样的对象之间的关系,但是对于数据的完整性而言,见外键则是一种很好的约束,所以,还是针对应用采取不同的方式
分享到:
评论

相关推荐

    关于用户权限的数据库设计

    "关于用户权限的数据库设计" 本文讨论了数据库设计中用户权限的设计问题,特别是基于基本权限功能的设计。文章首先介绍了项目中权限控制的需求,接着讨论了 zwei 疑惑:一是是否应该在底层截取用户权限,控制用户对...

    使用Java实现数据库编程

    #### 一、为什么需要规范的数据库设计 在学习数据库的过程中,很多初学者可能会疑惑,为何不直接根据业务需求快速搭建数据库并进行数据操作,而要强调设计的重要性。实际上,这种设计理念类似于建筑行业的规划,...

    数据库课程设计心得体会_2.pdf

    4. **数据库设计与分析**:在数据库课程设计中,作者实践了数据库的设计和分析,深化了对存储过程的理解,构建了一个基于数据集的图书馆管理系统。 5. **架构选择**:作者了解到MVС(模型-视图-控制器)架构,这是...

    数据库原理模拟试题分析与解答

    本主题主要涉及关系数据库模型,包括数据结构、查询语言、数据库设计理论以及数据库管理系统(DBMS)的工作原理。模拟试题是学习和检验数据库原理知识的有效工具,它们通常包含了对这些概念的实际应用和理解测试。 ...

    《数据库原理及应用》(第3版)课程课件

    《数据库原理及应用》(第3版)是一本深入探讨数据库系统理论与实践的教材,其课程课件包含了丰富的教学内容,旨在帮助学生理解和掌握数据库设计、管理与使用的各项技能。该课程课件不仅覆盖了数据库的基础理论,还...

    四级数据库工程师练习软件

    它涵盖了数据库理论、SQL语言、数据库设计、数据库管理与优化等多个核心领域,旨在帮助用户通过模拟练习和实战演练提升数据库技术水平。 一、数据库理论 在四级数据库工程师考试中,数据库理论是基础部分,包括数据...

    基于web的BBS论坛系统设计

    数据库设计基于E-R图进行,这是数据建模的关键,它将实体、属性和关系可视化,以便创建有效的数据存储方案。例如,BBS论坛的实体可能包括会员、论坛、管理员和帖子,它们之间的关系如会员发表帖子、管理员管理论坛等...

    数据库实习日志经典范例.doc

    数据库实习日志经典范例 数据库实习日志经典范例是数据库实习过程中的经典参考资料,涵盖了数据库实习的主要步骤和...通过学习和实践,我们可以更好地掌握数据库设计和开发的技能,并且可以更好地完成数据库实习任务。

    关于达梦数据库的表空间在线迁移数据文件的疑惑

    达梦数据库是一款国产的关系型数据库管理系统,其设计和功能与Oracle等传统数据库系统有诸多相似之处。在数据库管理中,表空间(Tablespace)是存储数据的逻辑单元,而数据文件(Datafile)则是实际存储数据的物理...

    家校通系统源码(强大保证能用带数据库)

    数据库设计的好坏直接影响到系统的性能和数据安全性。 家校通系统可能包含以下主要模块: 1. **用户管理**:包括学生、教师和家长的注册、登录、个人信息管理等功能。用户认证和授权是此模块的关键,确保只有授权...

    基于java的教务查询系统毕业设计(源代码+数据库+部署文档+部署视频).zip

    这是一个基于Java技术实现的教务查询系统的毕业设计项目,包含了完整的源代码、数据库设计、部署文档以及相关的教学视频。这个项目对于学习Java编程语言、理解Web应用开发流程以及熟悉教务管理系统功能的学生来说,...

    数据库系统概念第五版完整答案

    数据库设计是数据库系统中的关键环节,包括需求分析、概念设计、逻辑设计和物理设计。需求分析要确定系统的数据需求和功能需求;概念设计阶段,通常使用实体-关系(E-R)模型来表示数据;逻辑设计将E-R模型转换为...

    数据库第四版答案 王珊 萨师煊

    王珊和萨师煊编写的教材深入浅出地介绍了数据库的基本概念、设计原理和操作技术,包括关系模型、SQL语言、数据库设计、事务处理、并发控制、恢复机制以及数据库安全性等内容。 1. **关系模型**:这是数据库最常用的...

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

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

    数据库系统概论课后习题答案,王珊的书

    这本教材涵盖了数据库设计、数据模型、SQL语言、数据库管理、事务处理和并发控制等多个重要主题。 课后习题是深化理解并巩固所学知识的关键环节。这套"数据库系统概论课后习题答案"提供了详尽的解答,帮助读者检验...

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

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

    项目实践方法结合翻转课堂在Oracle数据库课程中的应用.pdf

    在Oracle数据库课程中,学生需要掌握如何结构化存储数据、如何使用SQL语句进行数据操作,并理解数据库设计的基本原理。 【关系型数据库】关系型数据库是基于关系理论的数据库模型,数据以表格的形式存储,通过行和...

    数据库系统概论第四版课后答案(全部)

    在本书中,作者们详细阐述了数据库的基本概念、数据模型(如关系模型)、数据库设计(包括需求分析、概念设计、逻辑设计和物理设计)、SQL语言、数据库查询优化、并发控制、事务处理、备份与恢复、安全性以及数据库...

    BXCSQLdb数据库对比工具

    BXCSQLdb数据库对比工具就是为解决这类问题而设计的专业软件,它能够帮助用户快速发现并解决数据库中的结构差异,提高工作效率。 该工具的核心功能在于对比两个数据库的结构,包括表、视图、存储过程、触发器等对象...

    课程网站—数据库原理与应用毕业设计.doc

    2) 增强互动性:通过论坛、讨论区等功能,学生可以与教师和其他同学进行讨论,解决学习疑惑,形成良好的学习氛围。 3) 自主学习平台:学生可以根据自己的进度和兴趣选择学习内容,培养自我学习能力。 4) 资源共享:...

Global site tag (gtag.js) - Google Analytics