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
This is just the whole query, you can put it into your PhpMyAdmin or whatever administration tool you use.
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]