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:
- Cases (Bugs, Features, Working Tasks, Etc) -Seats (Technical Support Occasions)
- Errors (Errors Produced from your logging Library, Essentially a stack trace with customer information)
- License (Monitors each clients License enables modification to individuals licenses)
Fundamental essentials Objects which are intermixed and used through the above 4 major areas.
- Customers (Individuals who make use of the system)
- Clients (Individuals who use our software)
- Stores (Places where our clients use our software)
- Items (Our Software)
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.
Each Situation type includes a separate table so there's a FeatureRequest, Bug, Tasks, Completed, etc table that retain the same information.