【问题标题】:Access changes table Relationships by itself访问更改表关系本身
【发布时间】:2020-06-14 07:15:32
【问题描述】:

我在设计 Access 数据库时遇到问题。

我是一名护理人员,我的部分工作是带客户进入社区。我正在尝试建立一个郊游目录,以帮助我们公司的员工提出并存储这些想法。我想为客户可以在一个位置执行的最多 5 种类型的事件中的每一种存储信息。该信息包括事件类型、运行时间和不运行时间以及费用多少,所有这些都是用户可选择的。 (分别在同一个表中,我想包括联系信息和帮助用户搜索事件位置的信息,例如邮政编码。)我试图通过在主表中的字段之间传播事件信息来规范化数据库,链接查找表。我知道访问has a limit of 32 relationships per table

为了帮助员工找到事件类型,我正在尝试设置一种方法来对它们进行分类。这需要设置嵌套查找表,如第一张图片所示。 如果我理解正确,这些查找表的附加“副本”是别名。当我保存这些别名查找表之间的关系设置时,关闭“关系”窗口,然后再次打开它,我发现 Access 已更改它们,如第二张图片所示。 无论我删除数据表视图中每个字段的查找表信息,都会发生这种情况。我不明白它为什么这样做或如何解决它。

【问题讨论】:

  • 如果你修复你的表结构,这个问题就会消失。个人数据和事件应该是单独的表,具有一对多的关系。
  • 它改变了它们,因为实际上只有一个 OutingType 表。你的结构不够规范。
  • 换句话说,我应该有 5 个事件类型插槽的表格,每个插槽都链接到个人信息字段,例如轮椅、家庭友好、宠物友好和提供/允许酒精.对吗?

标签: ms-access relationship lookup-tables


【解决方案1】:

回答你的问题:

在对象浏览器中,我看到您只有一个表:t_OutingType。因此,“表”t_OutingType_2t_OutingType_3 只是别名;指向同一张表的“指针”(如文档的快捷方式)。当您保存关系并关闭窗口时,关系信息将写入数据库的元数据。当您重新打开“关系”窗口时,Access 会根据元数据重新构建关系图,并且它不包含冗余别名。

补充建议:

每当您发现自己在表格中重复列时,例如Event_1Event_2、... 脑海中的一个小声音应该开始大喊“你确定这是个好主意吗?”想象一下,如果您想在数据库中搜索特定日期的事件。使用上述表格布局,您需要...

SELECT ... WHERE EventDate_1 = [theDate] OR EventDate_2 = [theDate] OR EventDate_3 = [theDate] ...

将事件信息拆分到单独的子表中并在子表与其父表之间维护一个关联表几乎总是更好。

【讨论】:

  • 我建立这个数据库是为了我的公司和获得数据库经验。当与this post 结合使用时,您关于意识到我当前的设计很糟糕的观点是后者道路上的一个观点。今天我学到了一些非常重要和有用的东西。谢谢。
猜你喜欢
  • 2011-02-02
  • 1970-01-01
  • 2012-12-26
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多