Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Design and Architecture
  4. need help in architecting a design for a webapplication

need help in architecting a design for a webapplication

Scheduled Pinned Locked Moved Design and Architecture
databasesql-serverdesignsysadminbusiness
9 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    shankbond
    wrote on last edited by
    #1

    Hi, I am developing a webapplication(currently), the web application is supposed to simply add data of employees , their will be different types of people(say 10 types of people) modifying the data in the tables of sql server-2005 their will be say around 15-20 different tables with an average of 10 fields per table. By architecture I mean assistance in designing the application so that the application may support 50 simultaneous users interacting with the web application simultaneously, how should my sql be engineered because in future their will be massive entries getting in the database say 50,000 or so minimum in two or three tables. what kind of design should I use to handle such requirements thank you

    M C 2 Replies Last reply
    0
    • S shankbond

      Hi, I am developing a webapplication(currently), the web application is supposed to simply add data of employees , their will be different types of people(say 10 types of people) modifying the data in the tables of sql server-2005 their will be say around 15-20 different tables with an average of 10 fields per table. By architecture I mean assistance in designing the application so that the application may support 50 simultaneous users interacting with the web application simultaneously, how should my sql be engineered because in future their will be massive entries getting in the database say 50,000 or so minimum in two or three tables. what kind of design should I use to handle such requirements thank you

      M Offline
      M Offline
      Mycroft Holmes
      wrote on last edited by
      #2

      I'm afraid a forum is not where you are going to get a solution to this question. The question is so broad that it is impossible to answer. I can only suggest you hire a consultant to do your design for you or you could employ a senior developer who could do this fairly easily. Alternative you need to get a book on database design. One rule you can start with, never store data more in more than in place (this does not include foriegn keys of course).

      Never underestimate the power of human stupidity RAH

      S 1 Reply Last reply
      0
      • M Mycroft Holmes

        I'm afraid a forum is not where you are going to get a solution to this question. The question is so broad that it is impossible to answer. I can only suggest you hire a consultant to do your design for you or you could employ a senior developer who could do this fairly easily. Alternative you need to get a book on database design. One rule you can start with, never store data more in more than in place (this does not include foriegn keys of course).

        Never underestimate the power of human stupidity RAH

        S Offline
        S Offline
        shankbond
        wrote on last edited by
        #3

        HI Mycroft, Thanks for the suggestion.

        P 1 Reply Last reply
        0
        • S shankbond

          HI Mycroft, Thanks for the suggestion.

          P Offline
          P Offline
          Pete OHanlon
          wrote on last edited by
          #4

          Just to add - whatever design you choose, make sure that you include some form of timestamp on your columns so that you can perform concurrency checking when your users update records - that way, you can easily implement a strategy where you choose who manages to update the record, and what messages are displayed if they can't.

          "WPF has many lovers. It's a veritable porn star!" - Josh Smith

          As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

          My blog | My articles | MoXAML PowerToys | Onyx

          S 1 Reply Last reply
          0
          • P Pete OHanlon

            Just to add - whatever design you choose, make sure that you include some form of timestamp on your columns so that you can perform concurrency checking when your users update records - that way, you can easily implement a strategy where you choose who manages to update the record, and what messages are displayed if they can't.

            "WPF has many lovers. It's a veritable porn star!" - Josh Smith

            As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

            My blog | My articles | MoXAML PowerToys | Onyx

            S Offline
            S Offline
            shankbond
            wrote on last edited by
            #5

            thanks Pete for your valuable suggestion

            1 Reply Last reply
            0
            • S shankbond

              Hi, I am developing a webapplication(currently), the web application is supposed to simply add data of employees , their will be different types of people(say 10 types of people) modifying the data in the tables of sql server-2005 their will be say around 15-20 different tables with an average of 10 fields per table. By architecture I mean assistance in designing the application so that the application may support 50 simultaneous users interacting with the web application simultaneously, how should my sql be engineered because in future their will be massive entries getting in the database say 50,000 or so minimum in two or three tables. what kind of design should I use to handle such requirements thank you

              C Offline
              C Offline
              CodingYoshi
              wrote on last edited by
              #6

              3-Tier architecture can be of great help. If you are developing with .NET then this will become 4-Tire architecture: User Interface, Code Behind, Business Layer, Data Access Layer. Do not make the mistake and design your application architecture exactly the same as database. Remember this, which I read in some text somewhere: Object oriented programming is not about normalizing data but normalizing behavior. You know ahead of time you will be interacting with the database so perhaps create utility classes which take a query and execute it, return tables, data readers etc. Store your connection strings in the .config file. The only part of your code which should realize this is a web based application is the User Interface and Code Behind files. The rest of your code should be totally ignorant of whether this is a desktop, web or mobile application. This will help in debugging, maintenance etc. Good Luck!

              CodingYoshi Artificial Intelligence is no match for Human Stupidity.

              S 1 Reply Last reply
              0
              • C CodingYoshi

                3-Tier architecture can be of great help. If you are developing with .NET then this will become 4-Tire architecture: User Interface, Code Behind, Business Layer, Data Access Layer. Do not make the mistake and design your application architecture exactly the same as database. Remember this, which I read in some text somewhere: Object oriented programming is not about normalizing data but normalizing behavior. You know ahead of time you will be interacting with the database so perhaps create utility classes which take a query and execute it, return tables, data readers etc. Store your connection strings in the .config file. The only part of your code which should realize this is a web based application is the User Interface and Code Behind files. The rest of your code should be totally ignorant of whether this is a desktop, web or mobile application. This will help in debugging, maintenance etc. Good Luck!

                CodingYoshi Artificial Intelligence is no match for Human Stupidity.

                S Offline
                S Offline
                shankbond
                wrote on last edited by
                #7

                CodingYoshi wrote:

                Do not make the mistake and design your application architecture exactly the same as database.

                Hi Yoshi, can you please explain what you do you mean here? Thanks shank

                C 1 Reply Last reply
                0
                • S shankbond

                  CodingYoshi wrote:

                  Do not make the mistake and design your application architecture exactly the same as database.

                  Hi Yoshi, can you please explain what you do you mean here? Thanks shank

                  C Offline
                  C Offline
                  CodingYoshi
                  wrote on last edited by
                  #8

                  I have seen people create classes based on database tables but it is not a good practice. For example lets say I have the table s below: Customers Orders Since this is a many to many relationship, to normalize we will create another table called: CustomersOrders This is basically the bridging or link table. Now design classes based on these tables and your design is as below: Customer Class Orders Class CutomerOrders Class You see what I mean. Instead you should have the following classes: Person Customer : Person // If later you need employee you can Employee : Person                            // Customer should also have an OrderCollection. Remember Aggregation Address // Both the Customer's shipping and billing address can use this CustomerCollection Order OrderCollection You will have classes which have methods for performing CRUD operations on these objects and those classes might call other classes for help. You might have many other properties and methods in your Customer class, in addition to the fields in the database, for example, FullName (First Name + ", " + Last Name), GetPendingInvoices() etc. Do you see now what I mean? OrdersCollection

                  CodingYoshi Artificial Intelligence is no match for Human Stupidity.

                  S 1 Reply Last reply
                  0
                  • C CodingYoshi

                    I have seen people create classes based on database tables but it is not a good practice. For example lets say I have the table s below: Customers Orders Since this is a many to many relationship, to normalize we will create another table called: CustomersOrders This is basically the bridging or link table. Now design classes based on these tables and your design is as below: Customer Class Orders Class CutomerOrders Class You see what I mean. Instead you should have the following classes: Person Customer : Person // If later you need employee you can Employee : Person                            // Customer should also have an OrderCollection. Remember Aggregation Address // Both the Customer's shipping and billing address can use this CustomerCollection Order OrderCollection You will have classes which have methods for performing CRUD operations on these objects and those classes might call other classes for help. You might have many other properties and methods in your Customer class, in addition to the fields in the database, for example, FullName (First Name + ", " + Last Name), GetPendingInvoices() etc. Do you see now what I mean? OrdersCollection

                    CodingYoshi Artificial Intelligence is no match for Human Stupidity.

                    S Offline
                    S Offline
                    shankbond
                    wrote on last edited by
                    #9

                    Thank You very much Yoshi for your useful information. I highly appreciate it.

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • World
                    • Users
                    • Groups