MySQL:在多个表中存储变量对值

MySQL:在多个表中存储变量对值,mysql,forms,codeigniter,Mysql,Forms,Codeigniter,原来的问题 我正在CodeIgniter中创建一个表单,它具有成对的价值-公司和CEO。这个想法是,虽然表单上最初只有一个公司字段,下面有一个CEO字段,但用户可以通过一个按钮创建更多对公司CEO字段。另外,还有另一个页面,我将从表单中获取输入并输出如下内容: CEO X is head of Company A id int Attribute1 blob Attribute2 blob 因此,这意味着我必须使这些对在某种程度上相互关联。根据前面的建议,我的MainMySQL表如下所示

原来的问题

我正在CodeIgniter中创建一个表单,它具有成对的价值-公司和CEO。这个想法是,虽然表单上最初只有一个公司字段,下面有一个CEO字段,但用户可以通过一个按钮创建更多对公司CEO字段。另外,还有另一个页面,我将从表单中获取输入并输出如下内容:

CEO X is head of Company A
id int
Attribute1  blob
Attribute2  blob
因此,这意味着我必须使这些对在某种程度上相互关联。根据前面的建议,我的
Main
MySQL表如下所示:

CEO X is head of Company A
id int
Attribute1  blob
Attribute2  blob
然后我将有一个
公司
表:

id int
Company text
foo blob
id int
CEO text
foo blob
最后,我将有一个
CEO
表:

id int
Company text
foo blob
id int
CEO text
foo blob

为了简单起见,对于
Main
中的每个记录,应该很简单地找出哪些公司CEO对属于该记录,因为他们都共享相同的id。每次填写和提交表单时都会创建该id。但是,我可以使用什么方法将每个公司与其对应的CEO关联?

除非将其存储在blob字段中,否则在主表中不会存储任何可以识别与记录关联的CEO/公司的内容。如果你想让一家公司有多个CEO,你需要

company table (id, companyname)
ceo table (id, ceoname)


company_ceos (ceo_id, company_id)

而且很可能需要一些日期信息,这样你就可以说“John Doe”是1999年到2008年的CEO,“Jane Smith”是09年到现在的CEO,在CEO和公司表中放置一个外键列,将它们链接到记录id:

公司

id int
Company text
record int
foo blob
CEO

id int
CEO text
record int
foo blob

每当用户点击Submit时,就会创建一个id并与整个记录关联。我想在公司和首席执行官中都有一个类似的id列,这样所有公司/首席执行官都连接到同一个id。而且,每个首席执行官只有一个公司,反之亦然。但是,主表(记录)可以有多个公司/首席执行官对。@Apophenia Overload。。。这一评论让我大吃一惊:(通常SQL RDBMS会使用M-M链接,其形式为:
[companys]1:M[CEO_companys]M:1[CEO]
。只需在它们之间创建适当的PK/FP关系。但是,根据需要做什么/存储什么会影响结构。例如,您是否需要记录随时间的变化?您能否规定一个人只能担任一家公司的CEO?等等。