如何在与其他表有关系的字段中存储多个值

时间:2018-01-17 18:01:19

标签: php mysql database codeigniter relationship

我正在使用mysql数据库和codeigniter处理'contact databse'。我的一些表格结构如下

-m

现在的问题是,某个人可能会在多个组织中工作。那我怎么能顺序插入这个多值来使用?

2 个答案:

答案 0 :(得分:2)

一个答案是创建另一个交叉引用表来存储用户和组织之间的连接。这样,一个人和组织之间很容易就会产生一对多的关系

$('.btnDidNotEat').click(function () {   
    $.ajax({

    }).done(function (partialViewResult) {        
        $('#btnRemoveDidNotEat').toggle();
    });
});


$('#btnRemoveDidNotEat').click(function () {   
    $.ajax({     

    }).done(function (partialViewResult) {                       
        $('#btnRemoveDidNotEat').toggle();
    });
});

然后,您应该从usertable

中删除fld_org(与组织有关系)

答案 1 :(得分:1)

(如果我不清楚,对不起我的英语)

如果我正确理解这一点,用户可以在多个组织中工作,而一个组织可以拥有多个用户,那么uno解决方案可能是创建一个联结表

JUNCTION_ORG_USER -> fld_id_user (usertable) REFERENCES usertable(fld_id)
                  -> fld_id_org (organization) REFERENCES organization(fld_id)

或者,如果你不想(或不能)规范化,你可以重复更改组织ID的行

另外,因为你正在使用codeigniter,如果你创建一个联结表,这适用 你可以用

$this->db->insert_batch('table_name', $array);

只需像documentation indicated

那样构建数组
$data = array(
    array(
            'fld_id' => 'TheUserId',
            'fld_org' => 'OrganizationId_1'
    ),
    array(
            'fld_id' => 'TheUserId',
            'fld_org' => 'OrganizationId_2'
    )
 );

 $this->db->insert_batch('mytable', $data);

希望我的回答能帮到你。