INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]   Go Down

Author Topic: Next -- Relational Database?  (Read 16133 times)

rick.ca

  • Citizen of the Universe
  • *****
  • Posts: 3729
Re: Next -- Relational Database?
« Reply #50 on: June 13, 2009, 03:12:41 pm »

Understandably, I cannot "rename" anything in these ("[category] details") views. Would I be able to use the "Store this field per [category]" command?... Hmmm. For list values, I think not—that would require a relational database!

The other foreseeable issue here is list fields... simple inheritance like this won't allow me to tag "Tom Cruise" in a file with [Actor] = Tom Cruise;Nicole Kidman unless there was another layer to this.

As much as I would like to pursue a feasible path, the inability to save additional information about list items is a rather huge limitation. I wonder if Matt's suggested approach is not akin to saying, "We can add relational functionality, as long as the subject is not relational."

The reason for my concern? Virtually all video category values I might want to record additional information about (all people, genres, series) are all list fields. My photos are organized by nested lists (places, people, keywords). The flat file accommodation of relations, for me, only seems applicable to music. And there, I'm with most other users—I don't care much about handling relations because the flat file model seems to work well enough. But I think that's just because I'm so used to dealing with music using that model. I can see how others may view music in exactly the same way I view movies—and have a real need to handle relations which cannot be handled in a non-relational model (I won't attempt to be specific, but it seems to come up frequently when knowledgeable users discuss the special requirements of classical music).

So unless I'm missing something (which is quite possible), I'll have to return to my original proposal. If something like that is not feasible, I think we should give up on the idea of MC handling relations in any significant way. Lest that be taken the wrong way, let me reiterate—as darichman has—my proposal is just an attempt to describe the functionality and behaviour I think would constitute a significant improvement/new feature. I'm not trying to suggest how the software should work, or if the concept is in any way feasible. That's for the developers to decide.

Matt's "Store this field per [category]" mechanism might be a nice enhancement, but I wonder if it's helpful to think of it as a solution to handling relations. The issues raised are difficult to assess, but my gut tells me they're likely more trouble than the enhancement is worth—particularly in the complexity it adds—even if implemented perfectly. Imagine a new user's response to a dialog box they have no reason to anticipate: "Why would I want to 'Save shoe size per album'?" As I said earlier, "I think the best approach would be to keep it simple, generic and intuitive." As much as I would like to see some relational functionality, I think it would a mistake to make any changes that violate this premise.
Logged

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42382
  • Shoes gone again!
Re: Next -- Relational Database?
« Reply #51 on: June 13, 2009, 06:34:27 pm »

As much as I would like to pursue a feasible path, the inability to save additional information about list items is a rather huge limitation. I wonder if Matt's suggested approach is not akin to saying, "We can add relational functionality, as long as the subject is not relational."

Wouldn't you just store the related data also in a list?

Imagine a list-type field "Actors" with a child field "Date of Birth".  If the list of Actors were "Billy Bob Thorton; Tom Hanks", then the "Date of Birth" field would look like "1955; 1956".
Logged
Matt Ashland, JRiver Media Center

leezer3

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 1588
Re: Next -- Relational Database?
« Reply #52 on: June 13, 2009, 06:54:07 pm »

Wouldn't you just store the related data also in a list?

Imagine a list-type field "Actors" with a child field "Date of Birth".  If the list of Actors were "Billy Bob Thorton; Tom Hanks", then the "Date of Birth" field would look like "1955; 1956".

What happens if the field gets re-ordered though?
As far as I can tell, your proposal would completely rat things up if a new value was added in either of the two fields without a corresponding value added in the other. (Feel free to prove me wrong!)

-Leezer-
Logged

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42382
  • Shoes gone again!
Re: Next -- Relational Database?
« Reply #53 on: June 13, 2009, 07:02:20 pm »

What happens if the field gets re-ordered though?
As far as I can tell, your proposal would completely rat things up if a new value was added in either of the two fields without a corresponding value added in the other. (Feel free to prove me wrong!)

-Leezer-

I would think a set to the parent or child field could automatically update the other.  Again, it slows down database sets on these fields a little, but I don't consider that a big problem.
Logged
Matt Ashland, JRiver Media Center

rick.ca

  • Citizen of the Universe
  • *****
  • Posts: 3729
Re: Next -- Relational Database?
« Reply #54 on: June 13, 2009, 07:14:14 pm »

Imagine a list-type field "Actors" with a child field "Date of Birth".  If the list of Actors were "Billy Bob Thorton; Tom Hanks", then the "Date of Birth" field would look like "1955; 1956".

Sorry, I'm confused. Isn't "child field" part of the concept proposed by darichman? I probably need to study that again, but I'm pretty sure it's a "quasi-relational" solution which, aside from jargon, is similar to mine. Maybe I'm wrong, but I don't think it works without changing the existing architecture either.

Maybe if I understood the ramifications of your example... Would I be able to create a view of actors and their dates of birth? Would I be able to add, change and delete them using this view?
Logged

rick.ca

  • Citizen of the Universe
  • *****
  • Posts: 3729
Re: Next -- Relational Database?
« Reply #55 on: June 14, 2009, 12:16:05 am »

After reviewed some of the prolific darichman posts on the subject, I'm somewhat less confused. At a conceptual level, his Parent field, with a set of Child fields, is a Table—according to my working definition of Relational. As far as that goes, we're talking about exactly the same thing. There are some differences in how we see various types of relations being handled, and in how they should manifest in the UI. Darichman seems to favour building relational functionality into the existing media-centric view, while I prefer to see it as a somewhat more independent extension (e.g., I would like to be able to work directly with my "tables"). That difference is less than it may seem, because I define the relationship to my "additional information" table as being "one-way." It can be referenced from the media view, but referencing media from the table view is not required.

So I'm less confused, but more concerned about where this conversation is headed. It seems to be taking a familiar circular form, like the ones before it. So I wonder, why do these conversations go nowhere when the concepts being floated are so straightforward. I think it's because of our (yes, mine too) fixation on the media-centric view of the database. There's nothing wrong with that—it quite obviously goes hand-in-hand with some of the fundamental strengths of the program we all appreciate. But it also gets in the way of rational consideration of additional features.

So this is what seems to be happening: No one wants a new feature/functionality to "break" the existing architecture. So we naturally look for ways to incorporate new ideas into the existing structure. So we look at the proposal, and twist it and turn it inside-out so it conforms to our existing view. Matt eventually tells us things like "it already does that," or "we can easily extend it to do that." Unfortunately, much of the anticipated benefit of the change is lost at this point. This should be no surprise. The existing architecture is mature, highly refined and performs extremely well. Any attempt to incorporate "more" into the same model it likely going to end up at the same place—not discernibly closer to perfection.

So we end up talking endlessly about things like "inheritance." We don't have an inheritance problem now—so who cares? When I pondered that one, I came to conclusion I really don't want any inheritance going on. Once I've established an artist table that includes a bio, for example, why would I want to even consider overwriting the bio with a tag from a new track? Obviously, my source for the artist bio is better known, accurate, reliable, and/or simply what I want. That's probably the reason I established the artist table in the first place. And I still may want to keep the bios in/from the media tags. It's fine to provide a facility to write a media field/tag to a table field, but making them the same just diminishes the value of the feature we're proposing.

And then there's list fields. It amazing how well MC handles these. For my 800-item video collection, there's over 13,000 people in one name\career\role nested field. It's very cool. But I can't record any additional information about these people! Obviously, I don't want to record information about all of them. And this is my point—for satisfying my desire to record information about some people related to some videos, the media-centric view becomes irrelevant. What makes a lot more sense is the ability to add a relative handful (perhaps a few hundred each of my favourite directors and actors) to a separate table (I'm sure we could call it a "view") and those be "linked" in various ways to the occurrences of those people in the media view.

By trying to crunch relational functionality into the media-centric flat-file view only diminishes the potential value of this as a feature, while making the existing model even more confusing and intimidating than it already is. I think it would be better to implement something of a truly relational nature, rather than trying to bury and blend it into the current non-relational model. Imagine how the program might then be introduced to the newcomer...

"Welcome to Media Center. It provides a media-centric view of all your media files because, well, it's a media manager! You can record as much information as you like about each of your media files. MC will keep all that information organized, up-to-date and properly associated your media files. It will do so with blazing speed, for more files than you can dream of owning. Now, if you want to record any additional information not directly related to a specific media file (e.g., an artist's biography), just right-click on any entry (in this case, an artist) and select Add additional information. That will open a separate view where you can add a column and enter the information..."

Okay, a marketing person would say it better, but I bet most would be impressed. By not integrating the feature so tightly into the existing model, it stands out as an intuitive, useful, substantive, additional feature. And there are more advantages:

  • Completely optional, and unobtrusive if not used.
  • Minimal impact on the existing structure, function and performance.
  • Does not further complicate the core functions of the program.
  • Allows a way of maintaining additional information so it's not impacted by changing media files.
  • Allows information not directly related to media files to be entered, maintained and viewed in more intuitive, direct way.
  • Provides more flexibility in collection design—fields can be related to media, another category, or both.
  • There's more, but this is already longer than a darichman post! :o
Logged

hit_ny

  • Citizen of the Universe
  • *****
  • Posts: 3310
  • nothing more to say...
Re: Next -- Relational Database?
« Reply #56 on: June 14, 2009, 02:57:13 am »

Imagine a list-type field "Actors" with a child field "Date of Birth".  If the list of Actors were "Billy Bob Thorton; Tom Hanks", then the "Date of Birth" field would look like "1955; 1956".
What happens if the field gets re-ordered though?
As far as I can tell, your proposal would completely rat things up if a new value was added in either of the two fields without a corresponding value added in the other. (Feel free to prove me wrong!)
I would think a set to the parent or child field could automatically update the other.  Again, it slows down database sets on these fields a little, but I don't consider that a big problem.

[DOB] would typically be a date field not a list field and so would [Actor] likewise not be a list field.

Now if we create a list field like [Actors] that will contain records with child fields.

What is the expected behaviour when viewing any of their child fields ?

One does not want to have to re-enter values that already exist for these records.

I think this requires a child-aware list field. So displaying the child field would indicate in a list fashion the sequential DOB's entered for the individual parents. So when viewing DOB in the AW, it would pull the values entered for these and populate the DOB field automatically in a list like fashion.

If we say that the positional order of the Parent determines the value of the child then it wont matter whether parent is on its own or in a list field.
Logged

newsposter

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 789
Re: Next -- Relational Database?
« Reply #57 on: June 14, 2009, 02:14:24 pm »

How about one that mirrored the blobs to your private account on an Internet server?

Supporting multiple sources/repositories (local/remote/offline) would be great and probably no harder than implementing support for a single repository.

If you look at supporting UNC paths, URL paths, and maybe Volume Shadow Copy paths that should cover all the bases.
Logged

Ekpen

  • Citizen of the Universe
  • *****
  • Posts: 686
Re: Next -- Relational Database?
« Reply #58 on: June 19, 2009, 12:38:41 pm »

A couple of people mentioned this.

Marty3d
leezer3

How about DVD Profiler? Where or how does this fit in?
If a relational db is added, it should be simple, not complex. Databases are memory hungry and involving and this may create another divertion.
I will like MC 14 to be able to load DVD profiler or create a menu that can call it up for use.

thanks.
ekpen
Logged

rick.ca

  • Citizen of the Universe
  • *****
  • Posts: 3729
Re: Next -- Relational Database?
« Reply #59 on: June 19, 2009, 05:35:52 pm »

I use Personal Video Database. With Send To (external) and PVD's -selectmovie="title" command line switch, I have a direct link to the corresponding record in my video database. But then what's the point of attempting to use MC to manage my video media if I have to switch to another application to get the information I want?
Logged

delebash

  • Member
  • *
  • Posts: 4
Re: Next -- Relational Database?
« Reply #60 on: May 17, 2010, 11:29:35 am »

Using another program such as PVD or AllMyMovies to manage the data then importing it into MC means just 1 more program and more tasks to do.  AllMyMovies does a good job of importing, internet lookup and display of data using a relational database, although it is an access database it does work, but using sqlexpress or ce or other lightweight relational database besides access would be nice.  You can see the benefits of using a relational database in AllMyMovies

1) change the .amm extension to .acdb and open it in access you will see all the tables and relations, and it makes sense, although it could use a little bit of design improvement its not bad.

Benefits are for storing things like Actors, Directors, Actor Images, Director Images, Countries, MediaTypes, ect you download this info once or refresh it and then a particular Actor,Actor Image, Country ect to many movies, same applies to music.

I think MC would benefit from a sql database.
Thanks!
Logged
Pages: 1 [2]   Go Up