Hi my name is Kirk. I just graduated from college with a degree in Computer Science. I have a broad range of knowledge of computers and programming, but not much knowledge specific to databases that will ultimately be used in a project I am working on.

I am building a website that is mainly database driven. I am trying to define a few variables before I hire someone to help me build it. I need some guidance and understanding of database design principles so I can better communicate my design to the eventual builder.

The website database contains four major categories. Each of these four unique categories has around a 100 fields that characterize it. A lot of the fields over lap for example first name, last name, zip code, phone number, etc. While there are some that are unique to only one or two of the four categories.

Initially, I thought it made sense to create four databases for each of these four categories. However, my partner suggests simply creating one large database with all fields in it and simply but NA in fields that do not apply to curtain categories.

General Overview and Parameters:

The data in this database will constantly be getting parsed depending on who is logged in and the rights that have been assigned to their account. Also, these users will be using documents that pull information from fields within the database to fill out letters such as:

To: <Field_2>
Attn: <Field_5>
From: <Field_31 >
Date: <Field_48>

I need a database language that allows information from fields to be pulled from it and inserted into documents such as the header above.

The database will be entirely web driven and thus accessed only from the web with multiple users concurrently accessing data, inputting data and editing data.

I need to be able to get to the database from the backend so that I can add fields and edit fields as an administrator.

I would also like to be able to create simple queries on the fly with little training.

In short we are building a database driven website with a database that we will be able to add, delete, edit and modify in all forms and fashion. All the layers of web pages in our website will be pulling different data fields from the database for different user's tasks depending on and determined by who is logged in.


1) With this in mind, what database language should this be written in and why?

2)How many databases should be created for this project?

3)On a 1-10 scale, how easy would it be to modify the database you are suggesting I use?

If anyone has some time, I would really appreciate input and advice on this topic.

Thank you,

There is a few good database language out there, but im going to keep it simple.
1) Non free license: Oracle, Sql Server, really nice interface, very user friendly and a lot support online, so you are not alone any problem i bet you can find a work around.
In the other hand for free license lovers the best one MySql, very strong database language, same thing user friendly and rich support online. php developers love MySql. whatever you select from this 3 options you will be fine.

2) I don't like the idea of creating multiples databases for the same projects, is better create as much tables you need in just one single database and take sometimes to normalize them and make the right relation between them.

3) all 3 have the most powerfull way to make any type of statement, easy maintenance, backup, restore, insert, update, delete, select, etc.. probably there is a few more but i have been working with all of them and im good with it.

take care body.

1) The two database management systems I would recommend are MS SQL and MySQL. Both are very stable and are widely used.

2) I agree with the single database approach. All related data (i.e. a single project) should be in one database.

3) Personally, I have found MySQL easier to work with; I don't know about others.

Concerning the use of NA in fields that don't apply to a record... that would indicate to me that a database is not properly normalized. I would recommend normalizing the database and allowing the relationships between entities determine what information is relevant to each category.