Mysql 将两个表合并到第三个表中,并添加一列以分叉条目

Mysql 将两个表合并到第三个表中,并添加一列以分叉条目,mysql,Mysql,我正在mysql中创建一个数据库经销商,它有三个表经销商、主地址和账单地址 经销商表有四个字段: `Dealer_id(primary key) Dealer_name email_id Phone_no 1001 Dell Dell@gmail.com 1234567890 1002 HP

我正在mysql中创建一个数据库经销商,它有三个表经销商主地址账单地址

经销商表有四个字段:

`Dealer_id(primary key)       Dealer_name           email_id           Phone_no

1001                          Dell                  Dell@gmail.com     1234567890 
1002                          HP                    hp@gmail.com   `   2345678901 
主地址有三个字段:

经销商id(主键)(外键)地址\u行\u 1城市
1001100戴尔纽约办事处
1002 200惠普伦敦办事处

计费地址也有三个字段(与表主\u地址类似):

主地址和账单地址中的现场经销商id也是一个外键,它引用表经销商的现场经销商id,以便相互关联

因为两个表主地址账单地址的字段是相同的。 因此,我不想创建两个表,而是想将这两个表合并到另一个表中,比如说address,再加上一个字段address\u type,让我们知道地址的类型,如主地址或账单地址

dealer_id (primary key)(foreign key)    address_line_1      city        address_type

1001                                    100 Dell office     New York    Primary
1002                                    200 HP office       London      Primary
1001                                    1001 Dell office    New Jersy   Billing
1002                                    2001 HP office      Cambridge   Billing  
但是如果我这样做,问题就出现了。在新创建的表address中,dealer\u id不能再是主键,因为它将有重复的条目

我是否应该在新表address中创建另一个字段,该字段可以与经销商id一起充当主键


因此,请建议我解决此问题的方法,以便我可以将两个表合并为一个。

我认为(
经销商id
地址类型
)可以是唯一的键。我会使用一个自动递增的
DealerAddressId
作为主键。我认为您应该创建另一列作为主键,当前的dealer\u id将只是外键而不是主键。它应该能解决你的问题。祝你好运。。
dealer_id (primary key)(foreign key)    address_line_1      city        address_type

1001                                    100 Dell office     New York    Primary
1002                                    200 HP office       London      Primary
1001                                    1001 Dell office    New Jersy   Billing
1002                                    2001 HP office      Cambridge   Billing