库表设计问题:一对一关系的两个实体,是不是必须建一个数据表来实现?
1、如果建两个表(原因:因为两个实体的业务关系不大,放一个表不怎么合适;或者碍于敏感信息,放一个表不安全,例如同一个用户的注册信息与帐户信息,通过两个表来存储),通过关键字来关联两个表,会不会增加数据库的负担?(在查询操作,增删改操作的时候)2、如果一个查询语句,关联的数据表太多,会不会降低查询的效率?如果一个查询必须关联许多数据表的话,怎样提高查询效率呢?
谢谢大家了,小弟目前在设计一数据库表,客户对系统运行效率要求严格,所以在设计数据库方面,不敢怠慢。
谢谢,分不够再加
1、如果建两个表(原因:因为两个实体的业务关系不大,放一个表不怎么合适;或者碍于敏感信息,放一个表不安全,例如同一个用户的注册信息与帐户信息,通过两个表来存储),通过关键字来关联两个表,会不会增加数据库的负担?(在查询操作,增删改操作的时候)2、如果一个查询语句,关联的数据表太多,会不会降低查询的效率?如果一个查询必须关联许多数据表的话,怎样提高查询效率呢?
谢谢大家了,小弟目前在设计一数据库表,客户对系统运行效率要求严格,所以在设计数据库方面,不敢怠慢。
谢谢,分不够再加
解决方案 »
- 如何在单独的线程创建控件?不是在主线程,是自己启动的线程
- 一個關於DataGridView超難的問題,高手進~~~
- BackgroundWorker参数传递问题
- 为什么string.Substring()后不存在啊?
- 如何用reflect得到当前类的所有const成员和值?
- 如何取客户端界面
- 我想写一个"关于"对话框,该怎么写?
- 请教:sqlserver中建的表没有主键,但是在c#中需要删除该表里的记录,不知怎么办?要代码谢谢!
- 把两个表分别为tablea、tableb绑定到datagrid里面,SQL语句应该怎么写?
- 求助,Visual Studio.NET安装问题,在线等!
- 有关OpenPOP收邮件的问题
- 邮件内容获取
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:
关键字段 → 非关键字段x → 非关键字段y 另外,老实说一个表的数据量太大并不是一件好事,至于你说的关联的数据表太多,会不会降低查询的效率,的确是会有点影响的,但不大。最好不要用seleect field from (Select field from XXX)这种查询语句,因为会用到临时表,对性能影响挺大的
可以以主键想同为条件进行关联,不过更好的方法是用外键关联。
例如
A表
---
PK_ID, nameB表
-------
PK_ID, Age, A_ID其中,B表的A_ID为外键,关联到A表的PK_ID