主键和外键关联AND外键能创建主键中没有的值吗?

夏之绚烂,秋之静美 2017-11-23 03:34:06
A表的主键是B表的一个字段(该字段为主键)能将B表设置为A表的外键吗?

A表没主键,但A表中的一个字段是B表的主键,那么能将B表设置为A表的外键吗?

外键参考栏位是SNO
为什么我主键中的SNO中没有S999这个数据,而外键中的SNO却可创建S999?
菜鸟求大神指点!
...全文
241 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
顺势而为1 2017-11-23
  • 打赏
  • 举报
回复
引用 5 楼 weixin_37601321 的回复:
例如 我发表一条评论,评论下面一堆回复。 A表用来存储评论数据,B表用来存储 “回复” 数据。一条评论对应多条回复。 那么,我直接在存储 “回复” 的表中创建一个没有评论的回复,这怎么能创建出来呢 ?因为我是直接在后台插入数据才能执行这条不合理的数据? 这问题跟评论系统有关的
建了外键后肯定不能添加主键中不存在的值的, 你直接拿出A,B表的结构及测试数据出来说话吧, 否则这样也说不清.
二月十六 版主 2017-11-23
  • 打赏
  • 举报
回复
那么,我直接在存储 “回复” 的表中创建一个没有评论的回复,这怎么能创建出来呢? ================ 没有评论回复谁?这个回复表不就是给评论回复的么? 如果评论和回复字段内容差不多,评论回复可以设置一张表,加一个type列来区分是评论还是回复。如果要用两张表,就给回复表上加一个评论表的主键作为外键,大概这个意思
--A
主键 文章Id 评论内容 添加时间 添加人 

--B
主键 A表主键(评论的Id) 评论内容 添加时间 添加人 
  • 打赏
  • 举报
回复
例如 我发表一条评论,评论下面一堆回复。 A表用来存储评论数据,B表用来存储 “回复” 数据。一条评论对应多条回复。 那么,我直接在存储 “回复” 的表中创建一个没有评论的回复,这怎么能创建出来呢 ?因为我是直接在后台插入数据才能执行这条不合理的数据? 这问题跟评论系统有关的
吉普赛的歌 版主 2017-11-23
  • 打赏
  • 举报
回复
雨亭说的对, 先贴 demo 的表结构及测试数据, 要不都虾扯蛋
听雨停了 2017-11-23
  • 打赏
  • 举报
回复
你说的这些添加主外键是没有问题的,只不过你搞错了,才导致为什么我主键中的SNO中没有S999这个数据,而外键中的SNO却可创建S999?的问题。最好把你的表结构贴出来,说明要做什么。这样别人才好帮你
二月十六 版主 2017-11-23
  • 打赏
  • 举报
回复
楼主可以说说实际业务背景,让大家看看怎么设计表更合理
二月十六 版主 2017-11-23
  • 打赏
  • 举报
回复
如果一个表的主键又是另一表的主键,那么就不应该建两个表,应该建一个表。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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