如果使用新格式,您不会走得太远。
为了提供新规范,您应该更改架构以具有另一个表,该表将用作联接表。
总共,您将有3个表,如下所示:
CREATE TABLE persontable (
person_id INTEGER PRIMARY KEY,
name VARCHAR(32),
-- more person fields...
)
CREATE TABLE datatable (
data_id INTEGER PRIMARY KEY,
join_id INTEGER,
-- more datatable fields...
)
CREATE TABLE jointable (
join_id INTEGER PRIMARY KEY,
person_id INTEGER
)
根据用户需要,Jointable将为每个用户提供尽可能多的行,例如
第二名表格列人员的ID = 5-3-8-2
它将有4行。
现在,您可以拥有如下数据:
SELECT d.*,
p.name,
...
FROM datatable d
JOIN persons p USING (person_id)
JOIN jointable j USING (join_id)
WHERE d.some_field = 'blah'