首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用libreoffice基础中的表单来添加/修改多到多关系中的数据?

问如何使用libreoffice基础中的表单来添加/修改多到多关系中的数据?
EN

Stack Overflow用户
提问于 2017-12-05 20:03:25
回答 1查看 1.9K关注 0票数 1

实际上,我试图使用LibreOffice基础创建一个光荣的联系人列表。我们的许多联系人都有多个地址(办公室、邮件、家庭),有时多个人有相同的地址。

我创建了一个带有联系人ID、姓氏和名字的简单联系人表。我创建了一个带有地址ID、城市、州等的地址表,我还创建了一个具有联系人ID和地址ID的连接表,并使用relationships工具连接了这三个表。

现在我想把所有的东西都添加到一个表单中。我观看了这段youtube视频,这是非常有帮助的,但我希望能够添加新的城市,而不仅仅是从预先确定的名单中选择。因此,我跟着视频,但将列设置为“组合框”,而不是“列表框”。但是,当我尝试得到一个错误消息时:

​

​

插入新记录时出错 SQL状态: 23000错误代码:-177 完整性约束违反-没有父SYS_FK_94表:在语句中的地址表插入到“联系人-地址连接”(“地址ID",”联系人ID")值( ?,?)

我想有明显的东西我错过了,但在这一点上,我很卡住了。

E:我拍了更多的截图来展示关系,表格,以及在表格中事物是如何联系的:

​

​

EN

回答 1

Stack Overflow用户

发布于 2017-12-06 19:11:29

在你引用的视频中,这是一种愚蠢的行为,因为没有必要建立多到多的关系。作者可以简单地向类型表中添加一个Movie字段(因此多个类型记录可以指向每个电影记录)。

我有一个复杂的多到多联系人结构,我正在从MS Access移植到LibreOffice。它有4个主要数据表:组、地址、电话和人员。连接这些主表的链接表有6个: GroupAddress、GroupPhone、GroupPerson、AddressPhone、AddressPerson和最终的PhonePerson。不像上面你引用的只有2个字段的视频,在我的链接表中有3个字段。例如,GroupAddress有GroupAddressID (链接表本身的唯一id )、GroupID (指向Groups表)和AddressID (指向addresses表)。这允许每个组有任意数量的地址,同时允许每个地址有任意数量的组。

因此,整个系统具有最大的数据灵活性:例如,它允许每个组不受限制的人数,每个人可以有无限的电话或地址,每个地址,无限的人数,等等。

在LO中实现它:因为在LO中,您不能根据多个表编辑查询(您可以查看它,但不能编辑它),就像在Access中一样(因此您也不能使用一个表来编辑一个基于多个表的查询),而在LO中,这并不像在Access中那样干净。

在Access中,它工作得很好,链接表可以自行管理!在LO中,您必须在一个单独的表中手动编辑链接表。我开始考虑如何使用一些宏来改进这一点,但就目前而言,它是最基本的。

为了给您一个更好的想法,第一个编辑组的表单,它还编辑组的地址、人员和电话(不仅仅是这些表,还包括到这些表的链接)如下所示:

代码语言:javascript
复制
Group lookup pulldown (used to find a group record)  
(this is a drop down box with custom code that helps me find group records)

Group editing fields, e.g. Group name, category, url, etc

然后在那下面

代码语言:javascript
复制
Group-Person links table

然后在右边

代码语言:javascript
复制
Persons table (plural) - to create new person, then..  

而在此之下

代码语言:javascript
复制
Person table (singular)   
 [pointed to by Group-Person link]  
 to view person pointed to.

组-地址链接(类似于上面的结构)

(例如,当企业有两个或多个地址时)

组-电话链接(类似于上面的结构)

(这是该组织直接拥有的电话#,而不是该小组成员的私人电话,也不是与特定地址相关的电话)。

还有另外三种类似的形式,

一个用于地址w/ Person、Group & Phone链接;

一个电话/组,地址和人的链接;

和一个为人w/组,地址和电话链接;

下面是4个编辑表单中的第一个表单的屏幕截图,用于编辑组和与组相关的链接:

​

​

希望这能有所帮助。我很想看看你有什么进展。谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47661774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档