So I am presently focusing on repairing a current website that's used internally inside my company for project management software, in mind it's a bug monitoring utility with a customer care and accounting procedures linked in it.

Presently the database model is extremely repetitive, among this really is, presently a UserId is related right into a record (FK relationship right into a user table that consists of all the details concerning the user) after which all the details concerning the user also is available within the table.

I have been assigned with enhancing the web site and also the functionality from the model however, I wish to lessen the repeating data within the website (is normalization or would be that the breaking apart of unlinked products into separate tables?). I am unsure what the best way to do this is. I am considering producing the creation scripts for that database and developing a new database project in Versus to then customize the database, then producing some scripts to populate the brand new database model in the old database.

I intend on while using Entity Framework and ASP. Internet MVC 2 to construct the web site as It offers the most flexible model continuing to move forward for that modification and upkeep of the web site.

The main reason I request all this happens because I am very acquainted with using databases and modifying existing ones for use in programs and websites but I am attempting to uncover the easiest method to build one.

I am curious if there's any material on the easiest method to do that or maybe I ought to be utilising another tool to get this done with?

Edit: Supplying a lot of the model

You will find 4 major areas that people obtain that are utilized:

  1. Cases (Bugs, Features, Working Tasks, Etc) -Seats (Technical Support Occasions)
  2. Errors (Errors Produced from your logging Library, Essentially a stack trace with customer information)
  3. License (Monitors each clients License enables modification to individuals licenses)

Fundamental essentials Objects which are intermixed and used through the above 4 major areas.

  1. Customers (Individuals who make use of the system)
  2. Clients (Individuals who use our software)
  3. Stores (Places where our clients use our software)
  4. Items (Our Software)

Associations

Cases: A Cases needs to possess a User, may have a Customer, Store, Error, Ticket and/or Product

Tickets A Ticket needs to possess a User along with a Customer, may have a Store, Error and/or Product

Errors: A Error needs to possess a Product, May have a Situation, Ticket, Store, and/or Product

Licenses: A Licenses needs to possess a Product and Customer, may have a Store

Like I stated very fundamental website, having a not super complex database, if done properly.

Presently the database doesn't have FK constraints, replication of plenty of information across each table and a lot of extra tables which are replicates with various names.

E.g.

Each Situation type includes a separate table so there's a FeatureRequest, Bug, Tasks, Completed, etc table that retain the same information.