Chinaunix

标题: 数据库主键设计的问题 [打印本页]

作者: jarray    时间: 2006-04-07 16:08
标题: 数据库主键设计的问题
要设计这样一个表,表中插入按“代码”编排的记录,即类似与自增字段的行,在插入后,如果该行被修改,则提供一个手段,能够查找出该修改的行是哪一代码行

有两种设计方法
(1)
create table (
a  varchar(30) 代码
b  datetime     入库时间
c  int
d int
e int
f int
)

主键设置为 a,b,每修改一行,将该行按代码和入库时间在插入一条记录。

(2)
create table (
a  varchar(30) 代码
b  datetime     入库时间
c  int
d int
e int
f int
g int   修改标志
)
主键设置为 a每修改一行,找到该行,并更新该行的g字段。

按第一种方法创建表,在表中数据达到100w行后,执行count(*) 时间为2分钟
按第二种方法创建表,在表中数据达到100w行后,执行count(*) 时间为6秒

想请教一下,用哪种方法比好呢?
作者: 2BeSybPro    时间: 2006-04-08 00:16
Please learn some basic knowledge for database design.
You can use method 1, but you better add one more table and triggers to track the change information (this is so called audit trail)




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2