远程视图中,记录有重复如何处理?

Samensiu 2004-08-10 07:01:11
如以下远程视图:
字段1 字段2 字段3 其中字段1设置为主键
记录1: a 1 5
记录2: a 2 6
记录3: b 3 7
记录4: c 4 8

以上看的出:“记录1”和“记录2”的“字段1”内容都是相同(有时因为一对多的关系,相同的有几个记录)。

然后我在程序里修改“记录2”:“字段2”改为3,保存后,我发现“记录1”也跟着改变,但我原来的目的是修改“记录2”啊!

然后我把“记录1”删除,保存后,连“记录2”也一起删掉了。

我想应该是主键的设置问题,

我试过 添加一个没用处的字段作主键(就为了“唯一”)?

请问:一对多的时候,如何设置主键?有什么好的方法?
...全文
217 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Samensiu 2004-08-17
  • 打赏
  • 举报
回复
to qufusongyu(元秋):
只能增加一个没大用处的字段作主键了,现在我也是这样做,原来VFP有这么致命的弱点,真有点可惜,我还花了那么多时间去学习 VFP。
qufusongyu 2004-08-16
  • 打赏
  • 举报
回复
你最好不要针对多表关联的视图进行更新,这其中有的字段都是引用的,你更改了某些字段的值,很有可能就更新了它引用的记录的字段值,造成一些意外的结果,可以分别对单表进行主健式更新或者其它更新方式,最好要有主健,如果没有主健在vfp中也是可以的,但你可以在单表中增加自增量字段或时间戳字段对其进行更新。
Samensiu 2004-08-16
  • 打赏
  • 举报
回复
to JohnShen(因果网): 学生名 + 学科 作主键, 你是说两个单独作主键,还是合并一个字段?还是 象索引: index on 学生名 + 学科 to ind,我是初学的,真糊涂了。
JohnShen 2004-08-13
  • 打赏
  • 举报
回复
在远程更新视图中,必须设置主键
JohnShen 2004-08-13
  • 打赏
  • 举报
回复
学生名 + 学科 作主键
Samensiu 2004-08-13
  • 打赏
  • 举报
回复
to cxmcxm(小陈) :我也试过增加一个字段作主键,但在程序每次都要处理这个无谓的字段,很烦啊?
to JohnShen(因果网):假如是 学生名 与 学科的关系,一个学生对应几个学科的分数,另一个学生也是对应相同几个学科,现在你如果用学科作主键就不行啦,你如何选择?

******
难道 VFP 的数据库管理就是这样,不设主键不行?
cxmcxm 2004-08-11
  • 打赏
  • 举报
回复
如你所列的表,如果作为多的表,可再增加一字段作为主键.确定表中的唯一的记录只能凭主键.
cxmcxm 2004-08-11
  • 打赏
  • 举报
回复
关系数据库是无所谓的记录号的,如果你在server端的表设置了主键,如你所列的情况是不可能出现的.
一对多时,可用多个字段作为主键,也可一自增列作为主键.
Samensiu 2004-08-11
  • 打赏
  • 举报
回复
请问JohnShen(因果网) :“多”表的主键为主键,能详细解析吗?我弄不懂。
JohnShen 2004-08-11
  • 打赏
  • 举报
回复
我的意思是说,比如你的选出的一对多数据中,一的表应该有主键吧,多的表也应该有主键吧,这时选出的数据就可以用多的表的主键来作为新的主键,有点拗口,举个例子吧:比如员工与部门的关系中,部门是一,员工是多,这时你选出的员工和部门的数据中就可以采用员工id作为主键了。
当然也不是非得这样选择,你只要保证所设置的主键唯一就行了。
Samensiu 2004-08-11
  • 打赏
  • 举报
回复
哪位高人回复。
JohnShen 2004-08-10
  • 打赏
  • 举报
回复
主键必须唯一,一般可采用一对多中“多”表的主键为主键

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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