我遇到了我的第一个mysql的INSERT测试和我使用这些表:在关系表上使用INSERT有哪些更好的方法?
table employees
-> employee_id
-> employee_name
-> employee_surname
-> employee_url
table areas
-> area_id
-> area_city
-> area_address
-> area_country
table agencies
-> agency_id
-> agency_name
-> agency_url
table node_employees
-> node_id
-> employee_id
-> area_id
-> agency_id
在
table_employee,
table_areas和
table_agency
我将存储的数据,但我不会强迫同时保存所有数据,这样我就可以创建一个员工,然后创建一个代理或地址。
在一个单数据插入的情况下,我应该使用这样的东西还是应该直接使用表node_employees,如果是的话,我该怎么办呢?
INSERT INTO employees (employee_name, employee_surname, employee_url)
VALUES ('Roger', 'Waters', 'http://pinkfloyd.com')
INSERT INTO agencies (agency_name, agency_url)
VALUES ('Google', 'http://google.com')
INSERT INTO areas (area_city, area_address, area_country)
VALUES ('Rome', 'Via Roma, 123', 'Italy')
要连结行相互我创建node_employees,关系表。 我使用它将员工与区域或代理机构连接起来,那么我应该如何将数据与此关系表链接?
SELECT employee_id FROM employees WHERE employee_name = 'Roger'
SELECT agency_id FROM agencies WHERE agency_name = 'Google'
// I'll get their ids in php
$php_employee_id
$php_agency_id
// and then
INSERT INTO node_employees (employee_id, agency_id)
VALUES ('$php_employee_id', '$php_agency_id')
我还有另一个疑问,如果我需要将员工与区域联系起来,我该怎么办?我应该使用不同的查询,以便查询每种可能性?
// so, not this
$php_employee_id = 12;
$php_agency_id = 7;
$php_area_id = null;
INSERT INTO node_employees (employee_id, agency_id, area_id)
VALUES ('$php_employee_id', '$php_agency_id', '$php_area_id') // will this remove the previous data with null in area_id?