Difference between revisions of "Next Generation Schema/Advanced Relationships Table Structure"

From MusicBrainz Wiki
(Advanced Relationships Table Structure: adjust size)
(Advanced Relationships Table Structure: correct based on IRC discussion)
Line 3: Line 3:
 
The main table is ''link''.  It contains the begin and end date info, and the '''link_type''' foreign key field that specifies what kind of AR it is.  It also has a count of how many other attributes that particular link has in the '''attributecount''' field.
 
The main table is ''link''.  It contains the begin and end date info, and the '''link_type''' foreign key field that specifies what kind of AR it is.  It also has a count of how many other attributes that particular link has in the '''attributecount''' field.
  
There are tables for every possible combination of primary entities (artist, label, recording, release, release_group, url, work), all prefixed with ''l_'' and all with the same format. Four of them are shown in the diagram above.  They contain a flag, '''modpending''' that marks if there are pending changes to the AR, and three foreign keys: '''link''' that points back to the associated entry in the ''link'' table, and '''entity0''' and '''entity1''' that point to the associated entry in the corresponding primary entity table (i.e. '''artist''', '''recording''', '''url''', etc.).
+
There are tables for every possible combination of primary entities (artist, label, recording, release, release_group, url, work), all prefixed with ''l_'' and all with the same format. Four of them are shown in the diagram above.  They contain a field, '''modpending''' that is a count of pending changes to the AR, and three foreign keys: '''link''' that points back to the associated entry in the ''link'' table, and '''entity0''' and '''entity1''' that point to the associated entry in the corresponding primary entity table (i.e. '''artist''', '''recording''', '''url''', etc.).

Revision as of 21:45, 7 September 2011

Advanced Relationships Table Structure

ngs-ars.png

The main table is link. It contains the begin and end date info, and the link_type foreign key field that specifies what kind of AR it is. It also has a count of how many other attributes that particular link has in the attributecount field.

There are tables for every possible combination of primary entities (artist, label, recording, release, release_group, url, work), all prefixed with l_ and all with the same format. Four of them are shown in the diagram above. They contain a field, modpending that is a count of pending changes to the AR, and three foreign keys: link that points back to the associated entry in the link table, and entity0 and entity1 that point to the associated entry in the corresponding primary entity table (i.e. artist, recording, url, etc.).