Mysql 我的sql模式设计问题-通用设计

Mysql 我的sql模式设计问题-通用设计,mysql,database-design,foreign-keys,relational-database,primary-key,Mysql,Database Design,Foreign Keys,Relational Database,Primary Key,我正在尝试设计我的数据库。目前,我的模式如下: 已经存在3个固定表,在此期间,我的表的数量将随着表中相同字段但不同值(mm、xx、yy、zz等)的增加而增加。每个表之间没有任何重复 a) user表,谁是内部用户 b) map\u platform\u user,将内部用户与外部用户进行映射。内部用户是我们的用户,外部用户是我们的合作伙伴用户 c) 平台,是合作伙伴的平台 d) mm或xx是不同平台的用户信息 我已经创建了名为map\u platform\u user的查找表。此表有一个字段u

我正在尝试设计我的数据库。目前,我的模式如下:

已经存在3个固定表,在此期间,我的表的数量将随着表中相同字段但不同值(mm、xx、yy、zz等)的增加而增加。每个表之间没有任何重复

a)
user
表,谁是内部用户

b)
map\u platform\u user
,将内部用户与外部用户进行映射。内部用户是我们的用户,外部用户是我们的合作伙伴用户

c)
平台
,是合作伙伴的平台

d)
mm
xx
是不同平台的用户信息

我已经创建了名为
map\u platform\u user
的查找表。此表有一个字段
user\u platform\u id
,我认为它可以创建与
mm
表的关系。(PK-FK)

1) 我想创建多个引用,如
mm\u user\u id(PK)、xx\u user\u id(PK),…
user\u platform\u id(PK)
。然而,我很确定这个解决方案是错误的,我不能对一个表有多个引用

2) 我的下一个解决方案是,每次在表
map\u platform\u user
中创建一个
新字段,例如
user\u platform\u id1
user\u platform\u id2
,。。。但此解决方案需要每次更改表
map\u platform\u user

3) 我考虑的第三个解决方案是不创建额外的表并将所有内容存储在
map\u platform\u user
表中,因此如果新平台是基于我们的需求而来,我将它们存储在
user\u platform\u id
字段中。在这种情况下,我必须将
name、email、…
添加到表
map\u platform\u user

我想提到的是,
用户平台id
是一个
外部id
,应该从我们的客户那里接收


mysql的版本是
5.5.47
,引擎位于
InnoDB
。我将感谢任何解决方案和讨论,以提高我的数据库的性能。我将拥有大量数据。

为什么要添加多个具有相同结构的表(
mm
xx
)?@MarkBannister,他们是我们的客户,我们需要这些字段名称、电子邮件,。。因此列是相同的,但值不同。我把它们放在那里作为一个例子,以表明我在这段时间里会有如此重复的结构;您是否将
类型
字段添加到客户表中,表示
mm
xx
任何内容?@Ben platform table实际上是我们客户的名称,我已经有了它。我称之为平台如果您有(或预计会有)性能问题,请向我们展示慢的查询。