Oxite - Table name cleanup project

Dec 16, 2008 at 12:33 AM
Edited Dec 16, 2008 at 5:20 PM
Following community review, we’d like to see simplification to the Oxite table names.  Let us know if you'd like to take on this project.

Updated table names:

Area - unchanged
AreaRole – formerly AreaRoleRelationship
BackgroundService – formerly BackgroundServiceAction
Comment – unchanged
CommentAnonymous – unchanged (removal recommended by using CommentMessage and User table)
CommentMessage – formerly CommentMessageRelationship
CommentRelation – formerly CommentRelationship
File – formerly FileResource (This table could also manage attached Images)
Language – unchanged
Message – unchanged
MessageUser – formerly MessageTo (Using “To” makes relation tables containing “To” seem inconsistently named.)
MessageAnonymous – formerly MessageToAnonymous (removal recommended by using MessageUser and User table)
Post – unchanged
PostArea – formerly PostAreaRelationship
PostRelation – formerly PostRelationship
PostTag – formerly PostTagRelationship
Role – unchanged
Snippet – formerly StringResource (Rename StringResourceKey to SnippetKey)
SnippetLanguage – formerly StringResourceVersion
Subscription – unchanged
SubscriptionAnonymous – unchanged (removal recommended by using Subscription and User table)
Tag – unchanged
Trackback – unchanged
User – unchanged
UserFile – formerly UserFileResourceRelationship
UserLanguage – unchanged
UserRole – formerly UserRoleRelationship

A. Compound words are used here to indicate relation tables – typically with only two capital letters.  Example: “AreaRole”

B. The word “Relation” is appended only for parent-to-child tables.  Example: “CommentRelation” instead of “CommentRelationship” or “CommentComment”.  Appending “Relationship” to all relation tables is too verbose and is not a standard practice.

C. Singular table names are retained.  Plural set names are now created automatically by LINQ to SQL.  Keeping table names singular avoids confusion over whether a relation table should be called AreaRoles, AreasRoles or Areas_Roles.

D. Oxite will serve as a Web 2.0 database design starting point, so “oxite_” is removed from the start of table names.  Pre-pended names are reserved for third-party tables.  This will avoid multiple User tables.  It will also allow Oxite to work well as an instructional application.  Removing the pre-pended database name will prevent future changes to the Oxite project name from breaking existing blog sites.  Most importantly, it will allow Oxite to serve as a generic Web 2.0 foundation for other applications to build upon.

E. The Snippet table (formerly StringResource) could serve the dual purpose of managing insertions of code snippets compiled at run-time.  It could contain tags for inserting SilverLight, MashUp and other widgets.  Another name for this table could be Widget or Insertion.

F. View discussion regarding Using the User table for anonymous users which would eliminate the need for several current tables and more future tables.




Dec 16, 2008 at 2:34 PM
Loren, consider adding this to the Issue Tracker instead of just discussions. You make great points and this is definitely that would help Oxite now and in the future.
Dec 22, 2008 at 2:35 PM
Edited Dec 23, 2008 at 2:10 AM
Thanks, I've added to the Issue Tracker.  View status of table name updates.
Dec 22, 2008 at 9:05 PM
Thanks for adding it. Ironically, Issues seem to get more discussion than Discussions, so you should get more feedback now. :-)