User:Philip/Schmierzettel
From AdminWiki
Revision as of 21:20, 23 April 2009
My weirdest one was at a contract a couple years ago. @ZombieSheep's weird one was part of it, but not the weirdest one in that company.
No, the weirdest one in that company was the database naming scheme. Every table was named in all caps, with underscores between the words. Every table had a prefix (generally 1 - 6 characters) which was usually an acronym or an abbreviation of the main table name. Every field of the table was prefixed with the same prefix as well. So, let's say you have a simple schema where people can own cats or dogs. It'd look like this:
PER_PERSON
PER_ID PER_NameFirst PER_NameLast ...
CAT_CAT
CAT_ID CAT_Name CAT_Breed ...
DOG_DOG
DOG_ID DOG_Name DOG_Breed ...
PERCD_PERSON_CAT_DOG (for the join data)
PERCD_ID PERCD_PER_ID PERCD_CAT_ID PERCD_DOG_ID
That said, as weird as this felt initially ... It grew on me. The reasons behind it made sense (after you wrapped your brain around it), as the prefixes were there to be reminders of "recommended" (and enforced!) table aliases when building joins. The prefixing made the majority of join queries easier to write, as it was very rare that you'd have to explicitly reference a table before the field.
Heck, after a while, all of us on the team (6 people on our project) were able to begin referring to tables in conversation by nothing more than the prefix. An acquired taste, to be sure ... But one that grew on me. So much so that I still use it, when I have that freedom.