【问题标题】:How to split a table into two tables and linking records with crosslink ID's如何将表拆分为两个表并使用交叉链接 ID 链接记录
【发布时间】:2013-04-23 09:29:00
【问题描述】:

我需要一些帮助来将旧客户数据库拆分为客户和地址

例如:

让我们调用旧表TB_old 还有两个新的new_customernew_address

TB_old有以下列:

cust_id, firstname, lastname, address, city, postalcode, phone, email, password

new_customers得到:

cust_id(new,A_I), firstname, lastname, phone, email, pass, address_id(link to new_address)

new_address得到:

address_id(new), address, city, postalcode, cust_id (link to new_customers)

我已经做了什么:

INSERT INTO new_customers firstname, lastname, phone etc etc
SELECT TB_old.firstname TB_old.lastname etc etc from TB_old

我被困在哪里:

在使用相对 cust_id 更新它并使用相对地址更新 new_customer 内部的 address_id 时,我一直在向 new_address 插入地址。

编辑:额外图片 说清楚:

【问题讨论】:

    标签: mysql sql database-design split


    【解决方案1】:

    第一件事:地址属于客户。考虑到这一点,您可以做到:

    INSERT INTO new_customers 
        (cust_id, firstname, lastname, phone, email, password)
    SELECT 
        (cust_id, firstname, lastname, phone, email, password)
    FROM TB_old;
    
    
    INSERT INTO new_address
        (address_id, cust_id, address, city, postalcode)
    SELECT 
        (null, cust_id, address, city, postalcode)
    FROM TB_old;
    

    ;-)

    【讨论】:

      【解决方案2】:

      您需要链接旧密钥和新密钥。最简单的方法:将字段 oldKey 添加到第一个表,将数据加载到其中(存储旧键),然后填充第二个表,使用旧键进行链接。毕竟 - 删除 oldKey 列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多