DLow
Junior Member
Posts: 1
Joined: Nov 2012
Reputation: 0
|
I just wanted to share my MYSQL Database Structure, cause its working pretty well. I created a new Table, which is a copy of the "files" Table, but this Table has 2 more columns for the second user. I create a lot of new Views, for usage through XBMC
I have to Put it into two posts because else it would be too long
This is just the whole query, you can put it into your PhpMyAdmin or whatever administration tool you use.
Hope it helps, greetings
DLow
First Part:
Code:
RENAME TABLE `xbmc-database-a60`.`files` TO `xbmc-database-a60`.`globalfiles` ;
ALTER TABLE `xbmc-database-a60`.`globalfiles` ADD `playCount2` INT( 11 ) NULL DEFAULT NULL ,ADD `lastPlayed2` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
ALTER TABLE `xbmc-database-a60`.`globalfiles` CHANGE `playCount` `playCount1` INT( 11 ) NULL DEFAULT NULL;
ALTER TABLE `xbmc-database-a60`.`globalfiles` CHANGE `lastPlayed` `lastPlayed1` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
CREATE DATABASE `xbmc-database-b60` ;
CREATE VIEW `xbmc-database-a60`.`files` AS
SELECT idFile, idPath, strFilename, playCount1 as playCount, lastPlayed1 as lastPlayed FROM `xbmc-database-a60`.`globalfiles`;
CREATE VIEW `xbmc-database-b60`.`files` AS
SELECT idFile, idPath, strFilename, playCount2 as playCount, lastPlayed2 as lastPlayed FROM `xbmc-database-a60`.`globalfiles`;
CREATE VIEW `xbmc-database-b60`.`actorlinkepisode` AS
SELECT * FROM `xbmc-database-a60`.`actorlinkepisode`;
CREATE VIEW `xbmc-database-b60`.`actorlinkmovie` AS
SELECT * FROM `xbmc-database-a60`.`actorlinkmovie`;
CREATE VIEW `xbmc-database-b60`.`actorlinktvshow` AS
SELECT * FROM `xbmc-database-a60`.`actorlinktvshow`;
CREATE VIEW `xbmc-database-b60`.`actors` AS
SELECT * FROM `xbmc-database-a60`.`actors`;
CREATE VIEW `xbmc-database-b60`.`artistlinkmusicvideo` AS
SELECT * FROM `xbmc-database-a60`.`artistlinkmusicvideo`;
CREATE VIEW `xbmc-database-b60`.`bookmark` AS
SELECT * FROM `xbmc-database-a60`.`bookmark`;
CREATE VIEW `xbmc-database-b60`.`country` AS
SELECT * FROM `xbmc-database-a60`.`country`;
CREATE VIEW `xbmc-database-b60`.`countrylinkmovie` AS
SELECT * FROM `xbmc-database-a60`.`countrylinkmovie`;
CREATE VIEW `xbmc-database-b60`.`directorlinkepisode` AS
SELECT * FROM `xbmc-database-a60`.`directorlinkepisode`;
CREATE VIEW `xbmc-database-b60`.`directorlinkmovie` AS
SELECT * FROM `xbmc-database-a60`.`directorlinkmovie`;
CREATE VIEW `xbmc-database-b60`.`directorlinkmusicvideo` AS
SELECT * FROM `xbmc-database-a60`.`directorlinkmusicvideo`;
CREATE VIEW `xbmc-database-b60`.`directorlinktvshow` AS
SELECT * FROM `xbmc-database-a60`.`directorlinktvshow`;
CREATE VIEW `xbmc-database-b60`.`episode` AS
SELECT * FROM `xbmc-database-a60`.`episode`;
CREATE VIEW `xbmc-database-b60`.`writerlinkmovie` AS
SELECT * FROM `xbmc-database-a60`.`writerlinkmovie`;
CREATE VIEW `xbmc-database-b60`.`genre` AS
SELECT * FROM `xbmc-database-a60`.`genre`;
CREATE VIEW `xbmc-database-b60`.`genrelinkmovie` AS
SELECT * FROM `xbmc-database-a60`.`genrelinkmovie`;
CREATE VIEW `xbmc-database-b60`.`genrelinkmusicvideo` AS
SELECT * FROM `xbmc-database-a60`.`genrelinkmusicvideo`;
CREATE VIEW `xbmc-database-b60`.`genrelinktvshow` AS
SELECT * FROM `xbmc-database-a60`.`genrelinktvshow`;
CREATE VIEW `xbmc-database-b60`.`movie` AS
SELECT * FROM `xbmc-database-a60`.`movie`;
CREATE VIEW `xbmc-database-b60`.`movielinktvshow` AS
SELECT * FROM `xbmc-database-a60`.`movielinktvshow`;
CREATE VIEW `xbmc-database-b60`.`musicvideo` AS
SELECT * FROM `xbmc-database-a60`.`musicvideo`;
CREATE VIEW `xbmc-database-b60`.`path` AS
SELECT * FROM `xbmc-database-a60`.`path`;
CREATE VIEW `xbmc-database-b60`.`setlinkmovie` AS
SELECT * FROM `xbmc-database-a60`.`setlinkmovie`;
CREATE VIEW `xbmc-database-b60`.`sets` AS
SELECT * FROM `xbmc-database-a60`.`sets`;
CREATE VIEW `xbmc-database-b60`.`settings` AS
SELECT * FROM `xbmc-database-a60`.`settings`;
CREATE VIEW `xbmc-database-b60`.`stacktimes` AS
SELECT * FROM `xbmc-database-a60`.`stacktimes`;
CREATE VIEW `xbmc-database-b60`.`streamdetails` AS
SELECT * FROM `xbmc-database-a60`.`streamdetails`;
CREATE VIEW `xbmc-database-b60`.`studio` AS
SELECT * FROM `xbmc-database-a60`.`studio`;
CREATE VIEW `xbmc-database-b60`.`studiolinkmovie` AS
SELECT * FROM `xbmc-database-a60`.`studiolinkmovie`;
CREATE VIEW `xbmc-database-b60`.`studiolinkmusicvideo` AS
SELECT * FROM `xbmc-database-a60`.`studiolinkmusicvideo`;
CREATE VIEW `xbmc-database-b60`.`studiolinktvshow` AS
SELECT * FROM `xbmc-database-a60`.`studiolinktvshow`;
CREATE VIEW `xbmc-database-b60`.`tvshow` AS
SELECT * FROM `xbmc-database-a60`.`tvshow`;
CREATE VIEW `xbmc-database-b60`.`tvshowlinkepisode` AS
SELECT * FROM `xbmc-database-a60`.`tvshowlinkepisode`;
CREATE VIEW `xbmc-database-b60`.`tvshowlinkpath` AS
SELECT * FROM `xbmc-database-a60`.`tvshowlinkpath`;
CREATE VIEW `xbmc-database-b60`.`version` AS
SELECT * FROM `xbmc-database-a60`.`version`;
CREATE VIEW `xbmc-database-b60`.`writerlinkepisode` AS
SELECT * FROM `xbmc-database-a60`.`writerlinkepisode`;
Second Part:
Code:
CREATE VIEW `xbmc-database-b60`.`episodeview` AS select `xbmc-database-b60`.`episode`.`idEpisode` AS `idEpisode`,`xbmc-database-b60`.`episode`.`idFile` AS `idFile`,`xbmc-database-b60`.`episode`.`c00` AS `c00`,`xbmc-database-b60`.`episode`.`c01` AS `c01`,`xbmc-database-b60`.`episode`.`c02` AS `c02`,`xbmc-database-b60`.`episode`.`c03` AS `c03`,`xbmc-database-b60`.`episode`.`c04` AS `c04`,`xbmc-database-b60`.`episode`.`c05` AS `c05`,`xbmc-database-b60`.`episode`.`c06` AS `c06`,`xbmc-database-b60`.`episode`.`c07` AS `c07`,`xbmc-database-b60`.`episode`.`c08` AS `c08`,`xbmc-database-b60`.`episode`.`c09` AS `c09`,`xbmc-database-b60`.`episode`.`c10` AS `c10`,`xbmc-database-b60`.`episode`.`c11` AS `c11`,`xbmc-database-b60`.`episode`.`c12` AS `c12`,`xbmc-database-b60`.`episode`.`c13` AS `c13`,`xbmc-database-b60`.`episode`.`c14` AS `c14`,`xbmc-database-b60`.`episode`.`c15` AS `c15`,`xbmc-database-b60`.`episode`.`c16` AS `c16`,`xbmc-database-b60`.`episode`.`c17` AS `c17`,`xbmc-database-b60`.`episode`.`c18` AS `c18`,`xbmc-database-b60`.`episode`.`c19` AS `c19`,`xbmc-database-b60`.`episode`.`c20` AS `c20`,`xbmc-database-b60`.`episode`.`c21` AS `c21`,`xbmc-database-b60`.`episode`.`c22` AS `c22`,`xbmc-database-b60`.`episode`.`c23` AS `c23`,`xbmc-database-b60`.`files`.`strFilename` AS `strFileName`,`xbmc-database-b60`.`path`.`strPath` AS `strPath`,`xbmc-database-b60`.`files`.`playCount` AS `playCount`,`xbmc-database-b60`.`files`.`lastPlayed` AS `lastPlayed`,`xbmc-database-b60`.`tvshow`.`c00` AS `strTitle`,`xbmc-database-b60`.`tvshow`.`c14` AS `strStudio`,`xbmc-database-b60`.`tvshow`.`idShow` AS `idShow`,`xbmc-database-b60`.`tvshow`.`c05` AS `premiered`,`xbmc-database-b60`.`tvshow`.`c13` AS `mpaa`,`xbmc-database-b60`.`tvshow`.`c16` AS `strShowPath` from ((((`xbmc-database-b60`.`episode` join `xbmc-database-b60`.`files` on((`xbmc-database-b60`.`files`.`idFile` = `xbmc-database-b60`.`episode`.`idFile`))) join `xbmc-database-b60`.`tvshowlinkepisode` on((`xbmc-database-b60`.`episode`.`idEpisode` = `xbmc-database-b60`.`tvshowlinkepisode`.`idEpisode`))) join `xbmc-database-b60`.`tvshow` on((`xbmc-database-b60`.`tvshow`.`idShow` = `xbmc-database-b60`.`tvshowlinkepisode`.`idShow`))) join `xbmc-database-b60`.`path` on((`xbmc-database-b60`.`files`.`idPath` = `xbmc-database-b60`.`path`.`idPath`)));
CREATE VIEW `xbmc-database-b60`.`movieview` AS select `xbmc-database-b60`.`movie`.`idMovie` AS `idMovie`,`xbmc-database-b60`.`movie`.`idFile` AS `idFile`,`xbmc-database-b60`.`movie`.`c00` AS `c00`,`xbmc-database-b60`.`movie`.`c01` AS `c01`,`xbmc-database-b60`.`movie`.`c02` AS `c02`,`xbmc-database-b60`.`movie`.`c03` AS `c03`,`xbmc-database-b60`.`movie`.`c04` AS `c04`,`xbmc-database-b60`.`movie`.`c05` AS `c05`,`xbmc-database-b60`.`movie`.`c06` AS `c06`,`xbmc-database-b60`.`movie`.`c07` AS `c07`,`xbmc-database-b60`.`movie`.`c08` AS `c08`,`xbmc-database-b60`.`movie`.`c09` AS `c09`,`xbmc-database-b60`.`movie`.`c10` AS `c10`,`xbmc-database-b60`.`movie`.`c11` AS `c11`,`xbmc-database-b60`.`movie`.`c12` AS `c12`,`xbmc-database-b60`.`movie`.`c13` AS `c13`,`xbmc-database-b60`.`movie`.`c14` AS `c14`,`xbmc-database-b60`.`movie`.`c15` AS `c15`,`xbmc-database-b60`.`movie`.`c16` AS `c16`,`xbmc-database-b60`.`movie`.`c17` AS `c17`,`xbmc-database-b60`.`movie`.`c18` AS `c18`,`xbmc-database-b60`.`movie`.`c19` AS `c19`,`xbmc-database-b60`.`movie`.`c20` AS `c20`,`xbmc-database-b60`.`movie`.`c21` AS `c21`,`xbmc-database-b60`.`movie`.`c22` AS `c22`,`xbmc-database-b60`.`movie`.`c23` AS `c23`,`xbmc-database-b60`.`files`.`strFilename` AS `strFileName`,`xbmc-database-b60`.`path`.`strPath` AS `strPath`,`xbmc-database-b60`.`files`.`playCount` AS `playCount`,`xbmc-database-b60`.`files`.`lastPlayed` AS `lastPlayed` from ((`xbmc-database-b60`.`movie` join `xbmc-database-b60`.`files` on((`xbmc-database-b60`.`files`.`idFile` = `xbmc-database-b60`.`movie`.`idFile`))) join `xbmc-database-b60`.`path` on((`xbmc-database-b60`.`path`.`idPath` = `xbmc-database-b60`.`files`.`idPath`)));
CREATE VIEW `xbmc-database-b60`.`musicvideoview` AS select `xbmc-database-b60`.`musicvideo`.`idMVideo` AS `idMVideo`,`xbmc-database-b60`.`musicvideo`.`idFile` AS `idFile`,`xbmc-database-b60`.`musicvideo`.`c00` AS `c00`,`xbmc-database-b60`.`musicvideo`.`c01` AS `c01`,`xbmc-database-b60`.`musicvideo`.`c02` AS `c02`,`xbmc-database-b60`.`musicvideo`.`c03` AS `c03`,`xbmc-database-b60`.`musicvideo`.`c04` AS `c04`,`xbmc-database-b60`.`musicvideo`.`c05` AS `c05`,`xbmc-database-b60`.`musicvideo`.`c06` AS `c06`,`xbmc-database-b60`.`musicvideo`.`c07` AS `c07`,`xbmc-database-b60`.`musicvideo`.`c08` AS `c08`,`xbmc-database-b60`.`musicvideo`.`c09` AS `c09`,`xbmc-database-b60`.`musicvideo`.`c10` AS `c10`,`xbmc-database-b60`.`musicvideo`.`c11` AS `c11`,`xbmc-database-b60`.`musicvideo`.`c12` AS `c12`,`xbmc-database-b60`.`musicvideo`.`c13` AS `c13`,`xbmc-database-b60`.`musicvideo`.`c14` AS `c14`,`xbmc-database-b60`.`musicvideo`.`c15` AS `c15`,`xbmc-database-b60`.`musicvideo`.`c16` AS `c16`,`xbmc-database-b60`.`musicvideo`.`c17` AS `c17`,`xbmc-database-b60`.`musicvideo`.`c18` AS `c18`,`xbmc-database-b60`.`musicvideo`.`c19` AS `c19`,`xbmc-database-b60`.`musicvideo`.`c20` AS `c20`,`xbmc-database-b60`.`musicvideo`.`c21` AS `c21`,`xbmc-database-b60`.`musicvideo`.`c22` AS `c22`,`xbmc-database-b60`.`musicvideo`.`c23` AS `c23`,`xbmc-database-b60`.`files`.`strFilename` AS `strFileName`,`xbmc-database-b60`.`path`.`strPath` AS `strPath`,`xbmc-database-b60`.`files`.`playCount` AS `playCount`,`xbmc-database-b60`.`files`.`lastPlayed` AS `lastPlayed` from ((`xbmc-database-b60`.`musicvideo` join `xbmc-database-b60`.`files` on((`xbmc-database-b60`.`files`.`idFile` = `xbmc-database-b60`.`musicvideo`.`idFile`))) join `xbmc-database-b60`.`path` on((`xbmc-database-b60`.`path`.`idPath` = `xbmc-database-b60`.`files`.`idPath`)));
CREATE VIEW `xbmc-database-b60`.`tvshowview` AS select `xbmc-database-b60`.`tvshow`.`idShow` AS `idShow`,`xbmc-database-b60`.`tvshow`.`c00` AS `c00`,`xbmc-database-b60`.`tvshow`.`c01` AS `c01`,`xbmc-database-b60`.`tvshow`.`c02` AS `c02`,`xbmc-database-b60`.`tvshow`.`c03` AS `c03`,`xbmc-database-b60`.`tvshow`.`c04` AS `c04`,`xbmc-database-b60`.`tvshow`.`c05` AS `c05`,`xbmc-database-b60`.`tvshow`.`c06` AS `c06`,`xbmc-database-b60`.`tvshow`.`c07` AS `c07`,`xbmc-database-b60`.`tvshow`.`c08` AS `c08`,`xbmc-database-b60`.`tvshow`.`c09` AS `c09`,`xbmc-database-b60`.`tvshow`.`c10` AS `c10`,`xbmc-database-b60`.`tvshow`.`c11` AS `c11`,`xbmc-database-b60`.`tvshow`.`c12` AS `c12`,`xbmc-database-b60`.`tvshow`.`c13` AS `c13`,`xbmc-database-b60`.`tvshow`.`c14` AS `c14`,`xbmc-database-b60`.`tvshow`.`c15` AS `c15`,`xbmc-database-b60`.`tvshow`.`c16` AS `c16`,`xbmc-database-b60`.`tvshow`.`c17` AS `c17`,`xbmc-database-b60`.`tvshow`.`c18` AS `c18`,`xbmc-database-b60`.`tvshow`.`c19` AS `c19`,`xbmc-database-b60`.`tvshow`.`c20` AS `c20`,`xbmc-database-b60`.`tvshow`.`c21` AS `c21`,`xbmc-database-b60`.`tvshow`.`c22` AS `c22`,`xbmc-database-b60`.`tvshow`.`c23` AS `c23`,`xbmc-database-b60`.`path`.`strPath` AS `strPath`,nullif(count(`xbmc-database-b60`.`episode`.`c12`),0) AS `totalCount`,count(`xbmc-database-b60`.`files`.`playCount`) AS `watchedcount`,nullif(count(distinct `xbmc-database-b60`.`episode`.`c12`),0) AS `totalSeasons` from (((((`xbmc-database-b60`.`tvshow` left join `xbmc-database-b60`.`tvshowlinkpath` on((`xbmc-database-b60`.`tvshowlinkpath`.`idShow` = `xbmc-database-b60`.`tvshow`.`idShow`))) left join `xbmc-database-b60`.`path` on((`xbmc-database-b60`.`path`.`idPath` = `xbmc-database-b60`.`tvshowlinkpath`.`idPath`))) left join `xbmc-database-b60`.`tvshowlinkepisode` on((`xbmc-database-b60`.`tvshowlinkepisode`.`idShow` = `xbmc-database-b60`.`tvshow`.`idShow`))) left join `xbmc-database-b60`.`episode` on((`xbmc-database-b60`.`episode`.`idEpisode` = `xbmc-database-b60`.`tvshowlinkepisode`.`idEpisode`))) left join `xbmc-database-b60`.`files` on((`xbmc-database-b60`.`files`.`idFile` = `xbmc-database-b60`.`episode`.`idFile`))) group by `xbmc-database-b60`.`tvshow`.`idShow`;
[/code]
(This post was last modified: 2012-11-14 14:44 by DLow.)
|