NameSilo

Web app dev cycle

Spaceship Spaceship
Watch

monty

Established Member
Impact
3
Just wondering how you guys go about planning the developement of a database driven web application... I learned to plan developement cycles for desktop apps and used the UML approach for several web applications but most of the times, the final design doesn't quite match the one rolling out of UML.

Is it helpfull at all to think about these kind of applications in a object kind of way? Is it better to use the database as a starting point of development?

Some contructive comments are greatly appreciated or maybe someone has a good article/tutorial about the development cycle of web apps?

thanks much!

-monty
 
0
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
AfternicAfternic
These are the steps I take:

Design the page I want database info to be displayed on.
Identify what data I want to display.
Go back to the database, add the appropriate fields.

And then repeat until i'm storing all the data I want.

I think that was the kind of reply you were looking for, hope it helped a bit.
 
0
•••
You must map out EVERYTHING that will need to take place.

If the project is small, then a one or two table database will suffice. You can usually do the design and planning on the fly.

However if the project is large (ecommerce site with 500 products being sold), then careful consideration needs to be placed on the database design. A large application is only as good as its database design. I have seen some horrendous database structures in my time. There are people who like to throw EVERYTHING into one table. That is VERY innefficient.

I am also a fan of OOP programming for larger project. OOP alows you to edit the existing structure in an efficient way. It also allows you to alter the classes and expand in an easy way.

As far as the database goes, I always sit down and write out all of the tables, structures, links, keys, etc.

For pages and functionality, I then make rough sketches of what needs done on each page. Example: Customer logs in, searches for a product, adds it to the cart, checks out, and voila. They purchased something.

On the admin side, you need to be able to deal with these orders. is the process automated? what emails are sent? How to you add/edit/delete product? the list goes on and on. I will make a list of what needs done for each section. Each task then becomes a module in the code.

For a large project, you can burn several days to several weeks doing just the mapping.

-Bob
 
0
•••
I totally agree; I think starting with the database is the most crucial step in the planning of a large project.

Of the reasons I'm asking is bacause in the past I always started by defining classes, properties, methods, relations, writing out use cases and all that. For the latest project, I started out by designing the database and noticed that this process runs kind of parralel with the UML planning proces. Once you have the database well designed, you pretty much have your classes (tables), properties (fields), objects (rows) and relations spread out.

Bob, how far do you go in normalizing the data in your database? Does it depend on the total size of your app or on how the functionality depends on normalized data? 1st norm good enough?

Sorry for all the questions, but for my next project I am very much restricted by time and really want to get the planning right.

Thx!

-monty
 
Last edited:
0
•••
This is what I do: Think of an idea, make it. No planning needed, lol
 
0
•••
Mikor said:
This is what I do: Think of an idea, make it. No planning needed, lol

So if I'm making a basic database driven web site, I develop like that some times. But did you ever try developing a online accounting application with quite high standards? Or a big e-commerce site like moodog descriped? I can't imagine that work out...
 
0
•••
1) First think what you want to make.
2) Get away from PC and List the features of the project on a paper.
3) Make a diagram of the database design.
4) Make a new project folder and import some prebuilt function files of your into it.
5) Design the Layout in the photoshop or your other graphic program.
6) Make the empty database and tables in it.
7) Make a ToDo.txt file in the project folder. And write the points that are to be covered.
8) Start coding.
9) Input dummy data in the database during the developing process if the scripts need to be tested.
10) Test the script. Atleast 3 times. Each and every function of it. Before releasing it to the public.

^^^^^ This are some of the points to develop a huge project successfully.

Otherwise without planning your project just hangs between 40% to 70% of its completion.
 
0
•••
Monty,

When designing the actual database, I always try to make as many tables as possible. The more tables, the faster your application will run, expecially if there will be lots of records (10,000 and up). For example, I have seen tables with 27 fields lumped together. If the table has 50,000 records, then your resulting query can get quite large. Storing that much data in memory while you do your stuff will have quite an impact on the speed at which your script executes.

If you are storing a large amount of data on a customer, you could break it information up into several tables such as:

Shipping Info
Billing Info
Financial Info
Customer Metrics (First Order, Last Order, Total amount orders in lifetime, and whatever else you think is important)
Membership Level

etc, etc, etc

I have seen databases with 100,000 records and 1000+ tables (The HOLY GRAIL OF DATABASES! :kickass: )


If you will only ever have 100 customers, then this kind of planning does not really matter. You can store all the info in one table if you like.

After your tables are defined, the classes follow suit. I tend to make a class for every table. Each class obviously follows the structure of the database table.

Hope this helps!

-Bob
 
Last edited:
0
•••
Dynadot — .com Registration $8.99Dynadot — .com Registration $8.99
Appraise.net

We're social

Unstoppable Domains
Domain Recover
DomainEasy — Live Options
  • The sidebar remains visible by scrolling at a speed relative to the page’s height.
Back