-- -- Set up a many-to-many relationship between tables (mini)series and eps -- ----------------------------------------------------------------------------- -- -- -- Table structure for the mapping table 'series_eps' -- DROP TABLE IF EXISTS series_eps; CREATE TABLE IF NOT EXISTS series_eps ( series_id int(5) NOT NULL REFERENCES miniseries(id), eps_id int(5) NOT NULL REFERENCES eps(id), PRIMARY KEY series_eps_pk (series_id,eps_id) ) ENGINE=InnoDB; SHOW warnings; -- -- Make a view to simplify access to eps and (mini)series. This simply -- joins the two tables through the 'series_eps' table. Some fields need -- renaming to avoid clashes. -- DROP VIEW IF EXISTS eps_with_series; CREATE VIEW eps_with_series AS SELECT e.id AS eps_id, e.date, e.title, e.duration, e.summary, e.notes, e.hostid, e.explicit, e.license, e.tags, e.version, e.downloads, e.valid AS eps_valid, ms.id AS series_id, ms.name, ms.description, ms.private, ms.image, ms.valid AS series_valid FROM eps e JOIN series_eps se ON (e.id = se.eps_id) JOIN miniseries ms ON (ms.id = se.series_id) ORDER BY e.id, ms.id; SHOW warnings; /* vim: syntax=sql ai tw=75: */