MySQL standard

I am brand new to mySQL and need to develop a standard for all mySQL databases for my company.

i do not even know where to start and what to include into the document. Any ideas?
LVL 35
YZlatAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Peter HausslConnect With a Mentor Software DeveloperCommented:
Hi,

Start with naming conventions and used data types. Which is in order to keep the overview very important especially when it is about a big amount of tables.

e.g. start names of tables with an tusers and so called views with an vuser.

Additionally Standard for database design should also include how fieldnames are called.
e.g. if Primary keys have to have a Special Name in order to have them the same way designed.

All the rest is quite depened on your businesscase and size and amount of tables.

br
Peter

[edit] within the following link you will find also example in order to get an idea. This example is related to Oracle database, i found on Google.

http://www.google.at/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&cad=rja&ved=0CHAQFjAF&url=http%3A%2F%2Fwww.bced.gov.bc.ca%2Fimb%2Fdownloads%2Fodeveguide2.doc&ei=q4hqUsDeDKjb0QXi7oCQBQ&usg=AFQjCNF_gcFdussc_EIKJn9ZIoxP3Ihwfg&bvm=bv.55123115,d.Yms

They are also including Terms of projectmembers (DBA,...) and their responsibilities.
How stored procedures needs to be coded,....

Maybe it is useful for your Job.
0
 
Daniel WilsonConnect With a Mentor Commented:
Yeah, naming conventions, data types, and key conventions are the place to start.  I'm not a fan of prefixes for tables, but their use or non-use should be standardized for the organization.

You should standardize whether table names are singular or plural.  Whether the tables are Customer or Customers makes no real difference, but remembering that the Customer table links to the Orders table which links to the OrderDetail table which links to the Products table ... because singular vs plural was whimsical becomes a real drag.

Capitalization enters the picture too.  Will your names be CamelCase, underscored_lower, etc?  It's a matter more of preference than anything, but should be standardized so that remembering the names is easy.

Beyond the Primary key, will you require foreign keys?  What rule will be used on deletion? There's no one-size-fits-all right answer (though this is closer to right/wrong than the naming convention is), but it should be standardized.

Also, what storage engine will you use?  Better to determine early what you will use (and what exceptions might be) than to go with defaults or let each developer make his own choice without consideration of the relative advantages of each.
0
 
Ray PaseurCommented:
The kind of thing you're describing is usually done by a full time four year college engineering major.

I think I would start by making a Google search for "learning mysql" and would follow the many good links that can point you to learning resources.  You will quickly see that this is not a good area to be guessing, especially since you're going to be setting the foundation for your company's applications.  Once you have done that, you might want to go to a nearby college or university and hire someone in the computer science department who is an expert in data base design and administration.  You can make a modest investment now and enjoy a strong foundation for growth or you can spend your career struggling, patching and repairing a botched design.  

I've seen this happen too many times.  As but one example of what can go wrong, consider the rollout of the US healthcare.gov web site.  They spent over half a billion dollars but because they started with flawed underpinnings the site still does not work, and is a huge embarrassment for the administration!

As the great oil-well firefighter Red Adair famously said, "If you think it's expensive to hire a professional, just wait till you hire an amateur!"
0
 
YZlatAuthor Commented:
thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.