Moved project directories and files to an empty local repo
This commit is contained in:
107
Database/hosts_eps.sql
Normal file
107
Database/hosts_eps.sql
Normal file
@@ -0,0 +1,107 @@
|
||||
--
|
||||
-- Set up a many-to-many relationship between tables hosts and eps
|
||||
-- -----------------------------------------------------------------------------
|
||||
--
|
||||
|
||||
--
|
||||
-- Make a table called 'new_hosts' containing a copy of the hosts table
|
||||
-- with the same structure but no data. Shrink the hostid column to int(5).
|
||||
--
|
||||
DROP TABLE IF EXISTS new_hosts;
|
||||
CREATE TABLE IF NOT EXISTS new_hosts (
|
||||
hostid int(5) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (hostid)
|
||||
) ENGINE=InnoDB
|
||||
SELECT * FROM hosts WHERE 0 = 1;
|
||||
|
||||
-- without the "double host" entries (host='Host1 and Host2')
|
||||
-- SELECT * FROM hosts where host NOT LIKE '% and %';
|
||||
|
||||
SHOW warnings;
|
||||
|
||||
--
|
||||
-- Make a table called 'new_eps' containing a copy of the eps table without
|
||||
-- the host-related columns but no data.
|
||||
--
|
||||
DROP TABLE IF EXISTS new_eps;
|
||||
CREATE TABLE IF NOT EXISTS new_eps (
|
||||
id int(5) NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB
|
||||
SELECT
|
||||
id,
|
||||
date,
|
||||
title,
|
||||
summary,
|
||||
notes,
|
||||
series,
|
||||
explicit,
|
||||
license,
|
||||
tags,
|
||||
version,
|
||||
valid
|
||||
FROM eps WHERE 0 = 1;
|
||||
|
||||
SHOW warnings;
|
||||
|
||||
--
|
||||
-- Table structure for the mapping table 'hosts_eps'
|
||||
--
|
||||
DROP TABLE IF EXISTS hosts_eps;
|
||||
CREATE TABLE IF NOT EXISTS hosts_eps (
|
||||
host_id int(5) NOT NULL
|
||||
REFERENCES new_hosts(hostid),
|
||||
eps_id int(5) NOT NULL
|
||||
REFERENCES new_eps(id),
|
||||
PRIMARY KEY hosts_eps_pk (host_id,eps_id)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
SHOW warnings;
|
||||
|
||||
--
|
||||
-- Populate the hosts_eps table
|
||||
--
|
||||
/*
|
||||
INSERT INTO hosts_eps (host_id, eps_id)
|
||||
SELECT ho.hostid, eps.id
|
||||
FROM hosts ho
|
||||
JOIN eps ON ho.hostid = eps.hostid
|
||||
ORDER BY ho.hostid, eps.id;
|
||||
|
||||
SHOW warnings;
|
||||
*/
|
||||
|
||||
--
|
||||
-- Make a view to simplify access to new_hosts and new_eps
|
||||
--
|
||||
DROP VIEW IF EXISTS hosts_with_eps;
|
||||
CREATE VIEW hosts_with_eps AS
|
||||
SELECT
|
||||
nh.hostid,
|
||||
nh.host,
|
||||
nh.email,
|
||||
nh.profile,
|
||||
nh.license AS host_license,
|
||||
nh.local_image,
|
||||
nh.valid AS host_valid,
|
||||
ne.id,
|
||||
ne.date,
|
||||
ne.title,
|
||||
ne.summary,
|
||||
ne.notes,
|
||||
ne.series,
|
||||
ne.explicit,
|
||||
ne.license AS eps_license,
|
||||
ne.tags,
|
||||
ne.version,
|
||||
ne.valid AS eps_valid
|
||||
FROM new_hosts nh
|
||||
JOIN hosts_eps he ON (nh.hostid = he.host_id)
|
||||
JOIN new_eps ne ON (he.eps_id = ne.id)
|
||||
ORDER BY nh.hostid, ne.id;
|
||||
|
||||
SHOW warnings;
|
||||
|
||||
/*
|
||||
vim: syntax=sql ai tw=75:
|
||||
*/
|
Reference in New Issue
Block a user