同一个表的主键可以是外键吗

keyouea 2011-07-20 05:38:22
同一个表的主键可以是外键吗,注意,我说的是同一个表?
比如表A(a_ID)表B(b_ID),设置表A的a_ID作为主键,同时设置为外键与表B(b_ID)关联。
可以不?表A与表B是一对一的关系
...全文
7156 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
csgarry 2012-12-05
  • 打赏
  • 举报
回复
在同一表下可以的 pd过期了 没试
keyouea 2011-07-21
  • 打赏
  • 举报
回复
都说可以啊,在mysql里面设置不起来。
Cannot add or update a child row: a foreign key constraint fails (`db_ax/#sql-8a8_28f`, CONSTRAINT `FK_xzgl_rsry` FOREIGN KEY (`XZGL_RSRY_ID`) REFERENCES `xzgl_rsry_cmpy` (`XZGL_RSRY_CMPY_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION)
fsh1985 2011-07-21
  • 打赏
  • 举报
回复
可以的,楼主
PatrickCao 2011-07-20
  • 打赏
  • 举报
回复
当前可以了
zhenzonghui 2011-07-20
  • 打赏
  • 举报
回复
当然可以
liangyong1107 2011-07-20
  • 打赏
  • 举报
回复 1
SQL主键可以当外键处理,多对多的表就是这样的。。其他的数据库应该也是可以的。
--小F-- 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 keyouea 的回复:]
主键不能作为外键,这是为什么呢?凭什么不能做外键。
有什么科学依据?
[/Quote]
powerdesigner的设置问题 与SQL无关
AcHerat 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 keyouea 的回复:]

主键不能作为外键,这是为什么呢?凭什么不能做外键。
有什么科学依据?
[/Quote]

SQL里是可以的。。。
keyouea 2011-07-20
  • 打赏
  • 举报
回复
主键不能作为外键,这是为什么呢?凭什么不能做外键。
有什么科学依据?
AcHerat 2011-07-20
  • 打赏
  • 举报
回复
这就是powerdesiger这个软件的问题了,如果真不能按楼主的那种情况设置,那就是开发者的设计成那样了,别抱什么想法。
keyouea 2011-07-20
  • 打赏
  • 举报
回复
我的意思,为什么不能呢?
AcHerat 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 keyouea 的回复:]

引用 9 楼 acherat 的回复:
引用 7 楼 keyouea 的回复:

powerdesiger用过吗?powerdesiger当一个表字段为主键是,是不能选择作为外键的。
有没有什么道理可言?


把表A的主键列当做两个列显示,一个里做主键标识,一个列引出做外键标识。


加一个字段还有意思啊?本来一个字段就能存放的事情。
[/Quote]

我的意思是E-R图描述的时候将表A的主键字段作为两个字段来看,一个是主键,一个是外键,是为了描述,你不说了不能在同一个字段上既做主键又做外键么,这样子也能比较清晰的描述表结构吧!
keyouea 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 acherat 的回复:]
引用 7 楼 keyouea 的回复:

powerdesiger用过吗?powerdesiger当一个表字段为主键是,是不能选择作为外键的。
有没有什么道理可言?


把表A的主键列当做两个列显示,一个里做主键标识,一个列引出做外键标识。
[/Quote]

加一个字段还有意思啊?本来一个字段就能存放的事情。



唐诗三百首 2011-07-20
  • 打赏
  • 举报
回复
没用过Powerdesiger, 只用过ERwin Data Modeler.
AcHerat 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 keyouea 的回复:]

powerdesiger用过吗?powerdesiger当一个表字段为主键是,是不能选择作为外键的。
有没有什么道理可言?
[/Quote]

把表A的主键列当做两个列显示,一个里做主键标识,一个列引出做外键标识。
AcHerat 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 keyouea 的回复:]

楼上的理解能力这差吗?
不是表B的外键。而是表B的主键作为表a的外键,同时这个外键与表a的主键是同一个字段。
[/Quote]

我不是说引出到表B做表B主键的外键么?

E-R图在表A标上主键标识,引一条线到表B主键就行。
keyouea 2011-07-20
  • 打赏
  • 举报
回复
powerdesiger用过吗?powerdesiger当一个表字段为主键是,是不能选择作为外键的。
有没有什么道理可言?
keyouea 2011-07-20
  • 打赏
  • 举报
回复
楼上的理解能力这差吗?
不是表B的外键。而是表B的主键作为表a的外键,同时这个外键与表a的主键是同一个字段。
唐诗三百首 2011-07-20
  • 打赏
  • 举报
回复
如何描述? E-R图就多一条参考线而已.
主键/外键是2个不冲突的属性.
AcHerat 2011-07-20
  • 打赏
  • 举报
回复
加个主键的标识,然后引出到表B做外键。
加载更多回复(3)

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧