These [[Advanced Relationship Type]]s are themselves simply entries in another database table. This means that new ones can be defined, old ones deleted, and existing ones modified through a relatively simple user-interface which does not require hacking the database internals. Since this data is much more important than any other individual entries, editing of [[Advanced Relationship Type]]s is limited to selected users, called [[Relationship Editor]]s. There are more relationship editors than developers, and the process of adding a new relationship type is much simpler than adding a new database table, so this is a very fast way to expand and improve the [[MusicBrainz Database]].

These [[Advanced Relationship Type]]s are themselves simply entries in another database table. This means that new ones can be defined, old ones deleted, and existing ones modified through a relatively simple user-interface which does not require hacking the database internals. Since this data is much more important than any other individual entries, editing of [[Advanced Relationship Type]]s is limited to selected users, called [[Relationship Editor]]s. There are more relationship editors than developers, and the process of adding a new relationship type is much simpler than adding a new database table, so this is a very fast way to expand and improve the [[MusicBrainz Database]].

−

A list of all of the relationship types defined so far is kept at [[Advanced Relationship Type]]s. That page also links to documentation for each individual type.

+

[[Category:Relationship Type|Relationship type]]s includes a list of all of the relationship types currently defined, as well as documentation for each individual relationship type.

==Style==

==Style==

Revision as of 08:02, 7 March 2010

Contents

An advanced relationship is a way to represent all the various inter-relationships between entities, as well as relationships from entities to information and resources found outside of the MusicBrainz database.

All of this information is stored in a single table in the database, and there is a single user interface for adding new information. In this way, MusicBrainz has a fairly simple way to deal with extremely complicated data.

These Advanced Relationship Types are themselves simply entries in another database table. This means that new ones can be defined, old ones deleted, and existing ones modified through a relatively simple user-interface which does not require hacking the database internals. Since this data is much more important than any other individual entries, editing of Advanced Relationship Types is limited to selected users, called Relationship Editors. There are more relationship editors than developers, and the process of adding a new relationship type is much simpler than adding a new database table, so this is a very fast way to expand and improve the MusicBrainz Database.s includes a list of all of the relationship types currently defined, as well as documentation for each individual relationship type.

Style

Creating and editing relationships

The types and attributes of advanced relationships are managed by Relationship Editors. They implement new relationships and changes to existing relationships following the passage of a proposal to do so.

While there are very few Relationship Editors, anyone can propose new relationships or changes to existing relationships, using the proposal process. While most editors are not able to directly edit the types of advanced relationships, it can be useful to know what advanced relationship attribute syntax itself supports, as it will be used to implement any relationship proposal which passes RFV.

History

Advanced Relationships were first officially proposed here. Dave Evans created the database structure to allow relationships, and wrote tools for allowing the user to define a type of relationship. However, the code for linking two entities together and the UI to manipulate relationships themselves was left undone.