MS access 2007 - 要存储在数据库列中的核对表选项(多个)

时间:2015-03-10 06:05:22

标签: ms-access-2007

我遇到类似情况 - MS Access 2007中的客户表单包含客户提供的文档列表。该清单采用清单格式。假设清单下有6个文件。因此,如果选择了一个或多个清单,则所有选定的列表都应保存在名为" Documents_Provided"的数据库列中。因此,为了实现这种情况,我应该做些什么。我的数据库字段应该如何" Documents_provided"应该声明,我需要在VBA代码中写什么。

1 个答案:

答案 0 :(得分:0)

根据您的问题标题建议" 多个要存储在数据库的列中"是一个非常糟糕的表设计,它打破了Fundamentals of Database Design的规则之一,数据应该是原子的。

您应该拥有的系统是客户和文档表之间的一对多。 Customer表通常具有基本的客户信息;关系的一方,Documents表将包含与每个客户相关的所有文档;关系的很多方面。另外,您将有另一个表Document Category,它将说明每个客户需要/可以拥有的所有文档。因此,表格中的示例数据将类似于

tbl_Customers
`````````````
ID  |   customerName    |   customerArea
----+-------------------+------------------
1   |   Paul            |   Bournemouth
2   |   Eugin           |   Bristol
3   |   Francis         |   London

tbl_DocumentsCategory
`````````````````````
ID  |   DocumentName
----+---------------------------
1   |   Address Proof
2   |   Photo ID
3   |   Employer Certificate

tbl_CustomersDocument
`````````````````````
ID  |   CustomerID  |   DocumentID
----+---------------+--------------
1   |   1           |   1
2   |   1           |   2
3   |   1           |   3
4   |   2           |   1
5   |   2           |   3
6   |   3           |   2

因此,当您需要获取每个客户拥有的文档列表时,您只需加入两个表以获取正确的信息。这是组织数据的标准和有效方式。我希望这会有所帮助,你坚持这一点。