【问题标题】:How do I move a field to a different table and maintain relationships?如何将字段移动到不同的表并维护关系?
【发布时间】:2024-05-02 00:20:02
【问题描述】:

我想这一定很简单,我只是不知道如何问这个问题。

我从 Microsoft Access 表中的 Excel 电子表格导入了数千条记录,其中包含一个要提取到新表中的字段。如何将数据从现有表中的字段移动到新表并保持与记录的关系?

目标是将现有数据从一个字段移动到一个新表中,该表将与现有父表具有一对多关系。


例如,在一个名为tblProperties 的表中,我有以下字段:

Property_Address | Property_Owner | UtilityMeter_Number

我想在物业被替换时维护公用事业计量表的历史记录,因此我想将 UtilityMeter_Number 字段从 tblProperties 移动到一个名为 tblMeters 的新表中,并在两个,这样我就可以为每个属性记录有多个计量记录。

如何将tblProperties中的UtilityMeter_Number字段中的所有现有数据移动到tblMeters中,并保持关系?


我想要做什么,我该怎么做?

【问题讨论】:

  • 您要使用自动编号主键吗?编辑问题以将示例数据显示为文本表而不是图像。
  • 您描述的流程的关键搜索词是Database Normalization - this link 可能会帮助您完成任务。
  • 需要明确的是,到目前为止,我的表中没有任何重复数据。展望未来,我希望能够在一个新表中拥有多条记录,而现在我在同一个表中的一个字段中的每条记录只有一个数据。

标签: sql database ms-access


【解决方案1】:

这称为规范化数据结构。

使用 SELECT DISTINCT 查询创建唯一记录。使用该数据集作为源来创建一个新表。比如:

SELECT DISTINCT CustID, LName, FName, MName INTO Customers FROM Orders;

现在从 Orders 表中删除不必要的 LName、FName、MName 字段。

表与常见的 CustID 字段相关。不使用自动编号主键。如果您确实希望在自动编号 PK 上建立关系,请继续执行以下步骤:

  1. 在新表中添加自动编号字段
  2. 在原始表中创建一个数字字段
  3. 运行 UPDATE 操作 SQL 以使用新表中的自动编号值填充新的编号字段 - 在常见的 CustID 字段上连接表
  4. 同时从原始表中删除 CustID 字段

【讨论】:

    最近更新 更多