【问题标题】:MS Access Table NormalizationMS 访问表规范化
【发布时间】:2017-11-22 14:00:34
【问题描述】:

我有 2 张 Excel 表格,其中一张包含组织的所有员工详细信息,包括代码、姓名、职务,另一张包含员工学习过的书籍。第二个表由员工代码、姓名和该员工所学书籍的名称组成。一位员工可能学习过不止一本书,而一本书可以被许多员工阅读。

现在,我想知道如何获得一个结果表,其中包含表 1 中的员工详细信息以及他们从表 2 中学习的相应书籍。

最后,该表应仅包含员工代码、姓名、职务、book1 名称、book 2 名称的列。而且在这个结果表中,我应该能够编写查询并导出表内容。

提前致谢!!

【问题讨论】:

  • 您如何处理多名员工学习一本书的情况?您描述数据结构的方式是每本书一名员工。如果您想为很多人提供很多书籍(很多都是双向的),您将需要一个指向员工和书籍的连接表,并从书籍参考中删除employeeid。但听起来你所描述的唯一方法是复制 book.record。
  • 您想在单独的表中导入员工数据,在单独的表中导入书籍数据,在单独的表中导入每个员工阅读的书籍,对吗?

标签: excel ms-access


【解决方案1】:

那不是标准化...

数据库规范化,或简称规范化,是 组织列(属性)和表(关系) 关系型数据库,减少数据冗余,改善数据 正直。规范化也是简化设计的过程 数据库,使其实现最佳结构 原子元素...

规范化涉及在基于关系的关系中安排属性 属性之间的依赖关系,确保依赖关系是 由数据库完整性约束正确执行。归一化是 通过应用一些正式的规则或者通过一个过程来完成 合成或分解。 (Wikipedia)

这是合并或更通常称为具有简单联接表的 Access 查询

这是一个示例查询的 SQL,它从两个连接的表中获取数据:(基于您命名的字段)

SELECT EmployeeDataTable.*, BookDataTable.*
FROM EmployeeDataTable 
INNER JOIN BookDataTable 
ON EmployeeDataTable .ID = BookDataTable.ID;

查询没有比这更简单的了。


这是一次性合并数据还是需要不断地从 Excel 导入数据?这可能会稍微改变步骤,但无论哪种方式听起来您都需要为 Access 找到一些初学者教程。 (YouTube 上有很多非常适合初学者的内容。)

首先,您需要将数据导入 Access。如果在 Access 数据库中单击 External Data 选项卡,然后单击 New Data Source,然后单击 From FileExcel,则简单且不言自明。

【讨论】:

    猜你喜欢
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2012-12-31
    • 1970-01-01
    • 2012-10-03
    相关资源
    最近更新 更多