Thread Rating:
  • 1 Vote(s) - 5 Average
GSOC 2013: Improved Database Layout
I haven't studied the schema in depth, but has there been any discussion of accommodating multiple pieces of media for a single title?

For example, let's say you pick up "Legend: Ultimate Edition". You now have two different versions of the same movie, as well as a documentary of the film.

You could just load up your favorite cut , or you could put both in as independent entries, or you could group them as a movie set. Each has their disadvantages. Your wife might disagree with you on what the "right" version is. You might clutter your menu with big blocks of duplicates (think: Blade Runner). Or you might have alternate versions of each movie in a series (think: Alien, Aliens, Alien³, Alien: Resurrection, each with at least two versions).

Likewise, what do you do with "special feature" content? Most of it is not valuable enough to clutter the top level menus, but having to fire up the DVD player and dig out the shiny discs is a hassle (even if most of mine weren't boxed and shoved in the attic).

The challenges in the database are probably the easy part here. Using an EAV model as has been discussed, adding "hasAlternate" and "hasSecondary" predicates would be relatively easy. Not sure how it would be presented in the UI. Ideally you would still want the one-click access to play the primary content, but having other content buried as an entry in a context menu also seems cumbersome. There would also be repercussions with the JSON-RPC interface and probably a dearth of ripper support for secondary content.

Quote:pecinko wrote:
For devices with weaker CPU centralised library with nice set of pre build filters would be more efficient solution than fine-tuning whatever DB. I'm not trying to say we need slow DB just that there might be more efficient solution for the problem.

pecinko actually states something more general: that in the realm of database design it is a flaw to set the priority on speed. A database should aim at offering a way to model logical relationships --- including the ability to alter the schema as need arises. Speed is a concern, but a secondary one: if someone cannot do the maths, it is immaterial whether he is speedy at that or slow.

@ wdomburg:
The way I visualize the solution to your question is to display for each library entry for which there exists a linked content (in your case a special feature, though it could also be a linked movie or tvshow or ebook) a [+] sign. Once clicked, it opens into a collapsible outline of the linked files or folders. Since I do not know whether it is possible to integrate collapsible outlines in the UI I suggest as an alternative to automatically color each library entry for which there exists linked content in an unusual color, say purple. This way the user knows of the existence of the link and can activate it. It goes without saying that links must display in mediainfo view.


GSOC 2013: Improved Database Layout51