Я работаю над "контактной базой данных" с использованием базы данных mysql и codeigniter. Некоторые из моих табличных структур приведены ниже
Organization -> fld_id
fld_orgname
fld_orgaddress
Department -> fld_id
fld_org_id (has relationship with organization)
fld_deptname
fld_details
Designation -> fld_id
fld_dept_id (has relationship with organization)
fld_desgname
usertable -> fld_id
fld_desg (has relationship with Designation)
fld_dept (has relationship with Department)
fld_org (has relationship with organization)
Теперь проблема в том, что когда-то человек может работать в нескольких организациях. Тогда как я мог бы вставить это несколько значений последовательно в usertable?
(Извините за мой английский, если я не понял)
Если я правильно понимаю, что пользователь может работать в нескольких организациях, и у организации может быть несколько пользователей, uno-решение может заключаться в создании таблицы соединений
JUNCTION_ORG_USER -> fld_id_user (usertable) REFERENCES usertable(fld_id)
-> fld_id_org (organization) REFERENCES organization(fld_id)
Или, если вы не хотите (или не можете) нормализовать, вы можете повторить строку, изменяющую идентификатор организации
Также, как и вы используете codeigniter, и это применяется, если u создает таблицу соединений, вы можете использовать
$this->db->insert_batch('table_name', $array);
Просто создайте массив, как указано в документации
$data = array(
array(
'fld_id' => 'TheUserId',
'fld_org' => 'OrganizationId_1'
),
array(
'fld_id' => 'TheUserId',
'fld_org' => 'OrganizationId_2'
)
);
$this->db->insert_batch('mytable', $data);
Надеюсь, мой ответ поможет вам.
Один из ответов - создать другую таблицу перекрестных ссылок для хранения соединения между пользователем и организацией. Таким образом, между человеком и организациями может быть очень много отношений
user_org => fld_id
user (usertable.fldid)
org (Organization.fld_id)
Затем вы должны удалить fld_org (имеет отношение с организацией) от usertable