Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 多个产品的表设计需要不同的用户信息才能订购_Mysql_Database - Fatal编程技术网

Mysql 多个产品的表设计需要不同的用户信息才能订购

Mysql 多个产品的表设计需要不同的用户信息才能订购,mysql,database,Mysql,Database,有多种金融产品略有不同,每种产品在订购时都需要基本的个人信息,有些需要不同的扩展信息,例如 用户信息基础 身份证 名字 UserInfo-Ext1 电子邮件 电话 UserInfo-Ext2 身份证 身份证照片 UserInfo-Ext3 银行卡号 产品类别 名字 产品特性 财产 产品 性质 现在: 产品1需要UserInfo Basic 产品2需要UserInfo Basic、UserInfo-Ext1 产品3需要UserInfo Basic、Us

有多种金融产品略有不同,每种产品在订购时都需要基本的个人信息,有些需要不同的扩展信息,例如


  • 用户信息基础

    • 身份证
    • 名字
  • UserInfo-Ext1

    • 电子邮件
    • 电话
  • UserInfo-Ext2

    • 身份证
    • 身份证照片
  • UserInfo-Ext3

    • 银行卡号

  • 产品类别

    • 名字
  • 产品特性

    • 财产
  • 产品

    • 性质

  • 现在:
    • 产品1需要UserInfo Basic
    • 产品2需要UserInfo Basic、UserInfo-Ext1
    • 产品3需要UserInfo Basic、UserInfo-Ext2
    • 产品4需要UserInfo-Basic、UserInfo-Ext1、UserInfo-Ext2、UserInfo-Ext3
如何将产品与用户信息链接


谢谢

我认为您需要一个
UserInfo
表,其中包含所有列(最后五列可为空),以及一个
Product
表(包含指示所需UserInfo项的列),然后通过触发器实现业务规则(产品2需要UserInfo Basic,UserInfo-Ext1)。在您的问题中如何在概念上对其进行映射将是维护的噩梦。

应该能够有一个左连接查询

伪码

select b.columns..., x1.columnss... x2.columnss. x3.columns...
from userinfo-basic b
left join userInfo-ext1 x1
left join UserInfo-ext2 x2
left join UserInfo-ext3 x3

无论是哪种产品,您都应该能够从userinfo表中选择所需的内容

谢谢,您所说的“触发器”是什么意思?在数据库级别或通过编程(硬)代码执行?数据库触发器,以确保UserInfo中的所有必要字段都存在于产品类型中。