相关疑难解决方法(0)

我应该使用复合主键吗?

在Java的JPA(通过EmbeddedId或IdClass注释)中似乎只有第二类支持复合数据库键.当我读到复合键时,无论语言如何,人们都会不断发现,因为它们是一件坏事.但我不明白为什么.这些天使用复合键仍然可以接受吗?如果没有,为什么不呢?

我找到了一个同意我的人:http: //weblogs.sqlteam.com/jeffs/archive/2007/08/23/composite_primary_keys.aspx

但另一个不这样做的人:http: //weblogs.java.net/blog/bleonard/archive/2006/11/using_composite.html

是仅仅是我,还是人们无法区分复合键的适用与否?当表不表示实体时,即当它表示连接表时,我看到复合主键很有用.

一个简单的例子:

Actor { Id, Name, Email } Movie { Id, Name, Year } Character { Id, Name } Role { Actor, Movie, Character }

这里的Actor,Movie和Character显然受益于Id列作为主键.

但是Role是一个多对多连接表.我认为创建一个id只是为了识别数据库中的一行是没有意义的.对我而言,主键显而易见{ Actor, Movie, Character }.它似乎也是一个相当有限的功能,特别是如果连接表中的数据一直在变化,一旦主键序列回绕到0,您就会发现主键冲突.

那么,回到最初的问题,使用复合主键仍然是可以接受的做法吗?如果没有,为什么不呢?

java sql language-agnostic database-design

17
推荐指数
5
解决办法
1万
查看次数

主键是否必要?

在数据库系统中,每个表都应该有一个主键吗?

比如我有一个表table1(foreignkey1,foreignkey2,attribute)this.table1没有一个主键.

我应该为这个表定义一个主键table1id吗?

mysql sql

5
推荐指数
1
解决办法
3088
查看次数

在不更改列内容的情况下将+1增加到id

我有随机内容随机表.

id | 名称| 任务
1 | aaaa | kitr
2 | bbbb | etre
3 | CCCCC | qwqw
4 | dddd | qwert
5 | eeee | 潜力
6 | ffffffff | TOTO


我想要的是在上面的表中添加一个id = 3的列,其中包含不同的名称和不同的任务但是OLD id = 3我想要一个id = 4,其中包含之前名称和任务的id = 4 = 3,并且OLD id = 4变为id = 5,其名称和任务为id 5,依此类推.
它就像我想要在列内部和列下面输入一列我希望增加id +1但是列保持相同.示例如下:


id | 名称| 任务
1 | aaaa | kitr
2 | bbbb | etre
3 | ZZZZZZ | zzzzz
4 | CCCCC | qwqw
5 …

sql oracle primary-key uniqueidentifier primary-key-design

1
推荐指数
1
解决办法
95
查看次数