设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: lzongb
打印 上一主题 下一主题

[表] 请教各位侠士:多字段主键如何建立一对多关系?

[复制链接]
11#
发表于 2016-9-29 22:26:32 | 只看该作者
张三家有1号房,李四家也有1号房
为什么会这样??
12#
发表于 2016-9-30 12:39:17 | 只看该作者
1、如果非要那样,为什么不把这两个主键组合成一个唯一值?
2、把“附属物”的字段全部附加到第二个表里。
13#
 楼主| 发表于 2016-9-30 21:18:35 | 只看该作者
Henry D. Sy 发表于 2016-9-29 22:26
张三家有1号房,李四家也有1号房
为什么会这样??

抱歉,没有表达清楚。我的意思是说,每一家(比如四合院)都有多个房屋,我们需要对房屋进行编号。所以每一家都有自己的1号房,但对于同一家,我不可以把房号编重,即不可以有两个房屋都编成1号。
14#
 楼主| 发表于 2016-9-30 21:27:50 | 只看该作者
本帖最后由 lzongb 于 2016-9-30 21:29 编辑
roych 发表于 2016-9-30 12:39
1、如果非要那样,为什么不把这两个主键组合成一个唯一值?
2、把“附属物”的字段全部附加到第二个表里。

之所以以OwnerID和房号作为复合主键,就是为了避免把同一个人名下的多个房屋的序号编重。我不知道是否还有别的相对简便的方式可以达到这一点。这两个主键的和是不唯一的,有可能重复,比如:
OwnerID       房号        OwnerID+房号
1                     1                      2
1                     2                      3
2                     1                      3
……
15#
 楼主| 发表于 2016-9-30 21:32:51 | 只看该作者
我想要达到两个目的:
1、Structure表中,同一人名下的房屋的序号不可以重复。
2、当Structure表中的房号发生变化时,装修设备附属物表中的对应房号可以同步变更。
16#
发表于 2016-9-30 21:50:56 | 只看该作者
lzongb 发表于 2016-9-30 21:18
抱歉,没有表达清楚。我的意思是说,每一家(比如四合院)都有多个房屋,我们需要对房屋进行编号。所以每 ...

觉得你把简单的问题复杂化了.
为什么不把业主编号+1号房(你所谓的房号),作为真正的房号呢 ?
17#
 楼主| 发表于 2016-10-2 09:22:59 | 只看该作者
谢谢大家!暂时抛开我所提供的实例,回归问题的本质,我目前得出的结论是:复合主键表作为“一”方,想与另一个表建立“一对多”的关系并实施参照完整性是有难度的,甚至是不可能的。
18#
发表于 2016-10-2 11:26:05 | 只看该作者
lzongb 发表于 2016-10-2 09:22
谢谢大家!暂时抛开我所提供的实例,回归问题的本质,我目前得出的结论是:复合主键表作为“一”方,想与另 ...

其实并不一定,得建立关系.我一般是在做查询时,才建立关系的.
至于要更改房号等关键数据,可以用更新查询.
19#
 楼主| 发表于 2016-10-2 18:03:20 | 只看该作者
Henry D. Sy 发表于 2016-10-2 11:26
其实并不一定,得建立关系.我一般是在做查询时,才建立关系的.
至于要更改房号等关键数据,可以用更新查询.

我现在也是通过更新查询的方式解决的,但如果能借助数据库自有的功能解决,我还是更倾向于后者。
谢谢诸位了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 18:25 , Processed in 0.096980 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表