设计数据库时,是不是primary key应该一般情况下不会呗改动?
假设这种情况,员工信息表有个员工编号字段,这个编号在使用MIS系统前就设定好了,每个职工都对应一个。输入员工信息的时候可能编号输入错误,那么就要修改。
是不是说员工编号不适合做主键了(虽然它可以唯一标识一条记录)?
一般主键都是自增字段,没有实际意义的?
我们在写修改模块的程序时,是不是都不允许改动主键的呢?
问题点数:20、回复次数:4Top
1 楼txlicenhe(马可)回复于 2004-05-04 08:39:06 得分 10
1:员工编号当然适合做主键。
2:我不喜欢用自增字段作为主键,特别是与其它表有关联的表中。
3:主键一般是不允许改动的。
Top
2 楼qabp(又迷路了)回复于 2004-05-04 10:48:49 得分 0
那我们设计update模块时,是不是根本不考虑主键修改的情况呢?
update的sql语句,根本不包含"set id=..."呢?Top
3 楼qabp(又迷路了)回复于 2004-05-04 10:50:35 得分 0
与其它表有关联的表中,用自增字段作为主键的弊端是...?Top
4 楼haoK(haoK.Y)回复于 2004-05-04 12:45:47 得分 10
我还是喜欢用自增字段作主键, 原因如下:
1. 有意义的字段就存在修改或是录入错的情况, 作主键不太合适
2. 使用Int型的自增字段作主键, 在关联时效率会高些(我感觉)
3. 没有意义的自增字段不会有修改的情况, 也就不涉及update了
4. 如果有意义的字段(如编号)需要经常查询,或保持唯一性, 建议加唯一约束或索引保证
Top
相关问题
- access 数据库出现“3022-duplicate value in index, primary key or relationship changes were unsuccessful"
- 请教下用OleDb怎么访问Sql 2000数据库表的primary key?
- 怎样在程序中感知SQL2000数据库改动?
- 改动dataGrid,最后更新到数据库的问题!
- 怎样在InterBase 中为一个数据库表建立含两个及以上字段的primary key
- 我该怎么另sql语句对数据库的改动立即生效?
- 我用mfc自动生成了一个oledb数据库操作程序,未作改动,可编译后提示数据库打开失败。
- 数据库表格中有一字段为id serial primary key ,用java插入一条记录后,如何取得这条记录的id?
- pb6code+ms sqlserver6.5,现在数据库升级到了7.0,原程序该如何改动!
- sql server能查到数据库最新有修改动作的是哪张表吗




