操作记录日志表没有主键合理么?

时间:2022-11-20 13:42:47
领导给的操作记录日志表没有主键,表结构如下
表 PointUseHistory

字段1  uid                  用户ID
字段2  pointUseType         使用积分场景代码
字段3  point                使用的积分数额
字段4  afterUserPoint       使用积分后用户积分余额
字段5  logDate              记录日志日期


个人感觉加一个identity字段比较好. 没有主键总是觉得很怪, 坏处在那里我一时也说不清,请大家帮忙

7 个解决方案

#1


建议加~~~
说不定以后什么时候用到~~~

#2


会有重复值
重复时,删除或修改会有问题

#3


日志表不建议加主键.

#4


能说说日志表不加主键的原因么?   Garnett_KG 

#5



日志档主要用於记录操作步骤

该TABLE上最频繁的操作是Insert

如果该表上含有主键(默认带有Clustered index)

则容易产生索引碎片,而 Heap 则不会有这种问题。




#6


引用 5 楼 Garnett_KG 的回复:
日志档主要用於记录操作步骤 

该TABLE上最频繁的操作是Insert 

如果该表上含有主键(默认带有Clustered index) 

则容易产生索引碎片,而 Heap 则不会有这种问题。 


不太同意.

是, 如果是Clustered index, 对数据的操作是会产生碎片.

但是, 看那个日志表, 明显是为以后检索用的. 所以, 你最好加主键, 同时为了防止所谓的碎片, 你可以设置它为NON-CLUSTERED INDEX. 这样就避免的SQL SERVER默认之为CLUSTERED INDEX了.

#7


学习中,支持一下

#1


建议加~~~
说不定以后什么时候用到~~~

#2


会有重复值
重复时,删除或修改会有问题

#3


日志表不建议加主键.

#4


能说说日志表不加主键的原因么?   Garnett_KG 

#5



日志档主要用於记录操作步骤

该TABLE上最频繁的操作是Insert

如果该表上含有主键(默认带有Clustered index)

则容易产生索引碎片,而 Heap 则不会有这种问题。




#6


引用 5 楼 Garnett_KG 的回复:
日志档主要用於记录操作步骤 

该TABLE上最频繁的操作是Insert 

如果该表上含有主键(默认带有Clustered index) 

则容易产生索引碎片,而 Heap 则不会有这种问题。 


不太同意.

是, 如果是Clustered index, 对数据的操作是会产生碎片.

但是, 看那个日志表, 明显是为以后检索用的. 所以, 你最好加主键, 同时为了防止所谓的碎片, 你可以设置它为NON-CLUSTERED INDEX. 这样就避免的SQL SERVER默认之为CLUSTERED INDEX了.

#7


学习中,支持一下