Mysql 将记录插入到表中,如果外键不存在,也将记录插入到另一个表中

Mysql 将记录插入到表中,如果外键不存在,也将记录插入到另一个表中,mysql,database,Mysql,Database,我已创建此数据库: 我想在里面插入数据 这些数据将来自数组,并且总是ad\u系统、ad\u营地、ad\u组、关键字、印象、点击、价格、转换 我认为DB的结构很好。但我的应用程序的目的只是加载报表数据,格式化它们,然后将它们保存到数据库中。例如,我将加载第一个报告,并希望将其插入数据库。这意味着我可能需要检查另一个表中是否存在外键(因为我主要是只在报表中插入表,然后再将其插入到该表中,依此类推?这可能吗?这是正确的方法吗?这似乎有点奇怪,但却是正确的。是的,您的模式清楚地显示报表依赖于关键字,所

我已创建此数据库:

我想在里面插入数据

这些数据将来自数组,并且总是
ad\u系统、ad\u营地、ad\u组、关键字、印象、点击、价格、转换


我认为DB的结构很好。但我的应用程序的目的只是加载报表数据,格式化它们,然后将它们保存到数据库中。例如,我将加载第一个报告,并希望将其插入数据库。这意味着我可能需要检查另一个表中是否存在外键(因为我主要是只在
报表中插入
表,然后再将其插入到该表中,依此类推?这可能吗?这是正确的方法吗?这似乎有点奇怪,但却是正确的。

是的,您的模式清楚地显示报表依赖于关键字,所以您必须先找到一个现有的关键字记录或插入一个新的关键字记录。但要做到这一点,您需要因为依赖链一直回到系统,所以我必须找到或插入一个组记录,诸如此类。是的,这就是问题所在。因为我所要做的只是加载报告并将其保存到数据库中。因此,看起来每次我加载报告时都需要使用新的
ad_系统、ad_campaing或ad_Group
,我需要st插入那些记录…我认为,这意味着我必须始终从顶部开始(
ad\u system
)然后检查该值是否存在,如果不存在,则插入该值,然后一直下到
报告
表,是吗?是的,这就是想法。我知道,这似乎是额外的工作,但要符合第三个标准格式模式,这就是必须发生的事情。