Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was asked to make a web application to allow users to query a particular database more easily. Simplifying, this database has only two tables, reports and products. The relationship between the two is that one report may refer to one or more products. The web application should allow users to specify in a graphic way (even in a simple form) a list of search criteria to retrieve a subset of reports. For example a user might ask for all reports in a certain period, with "(field1 = value1 and field2 = value2) or (field3 <> value3)", that refer to product A and product B. This is the description of the basic requirements; ideally the web application should also allow users to save and combine their queries (for example with "UNION, EXCEPT, INTERSECT"-like operators) and to dinamically order the results. Moreover, the products ca be grouped into hierarchical levels and a user might ask for all reports that refer to all products in a certain level.

At this moment the reports table has only 114.000 rows but it's growing fast: it has existed for 27 years but 18.000 rows were inserted last year!

So, my question is how to approach the development of this application. First of all, it is necessary to develop a NEW application or there is something I can use out-the-box (with some initial configuration, obviously)? If not, I believe I could write it myself with CodeIgniter and JQuery, but I would know if there are other PHP or JAVA frameworks or components useful to speed up my work.

Finally I'd love to hear your opionion about the critical points I should worry about.

share|improve this question
    
So basically, you want to know how to build a data driven website. I'm not sure this is on-topic for this site, maybe better on SO. –  jmo21 Apr 21 '11 at 9:20
1  
@james - there's no specific coding issue here, so I don't think it's on topic for Stack Overflow. –  ChrisF Apr 21 '11 at 9:46

1 Answer 1

up vote 1 down vote accepted

Finally I'd love to hear your opionion about the critical points I should worry about.

The critical point is search.

First, you need to search for "web database framework". Of the hundreds of results, figure out which one seems to handle your requirements. There are a lot. A real lot.

If that doesn't turn up anything, then search for "web-based reporting" and "web-based business intelligence". Of the hundreds of results, figure out which one seems to handle your requirements. There are a lot. A real lot.

This has already been solved hundreds of times. There are hundreds of open source and proprietary products that do this.

It's -- perhaps -- one of the most popular categories of software because it's so commonly used by so many people.

share|improve this answer
    
Ok, I guess I should search deeply; I know to have a common problem but I found no help with Google. I doubt that I need a reporting solution. I don't want to display nicely formatted reports with graphs and I want more flexibility. In this situation I want allow the user to define complex conditions for search criteria, define the columns to display, define the order of the rows and combine the queries he defines. Should I write a new application myself? In that case what are useful components? (SlickGrid could be one). Searching for "web database framework" did not return all that results. –  Hobbes Apr 22 '11 at 7:59
    
@Hobbes: "I want allow the user to define complex conditions for search criteria, define the columns to display, define the order of the rows". That's what "reporting" is. "combine the queries he defines". That makes very little sense. "Should I write a new application myself?". Still no. Find a packaged solutions. This has already been done hundreds of times. "web database framework" -- Then stop searching for that. Search for "Reporting" and "Business Intelligence" and "Business Analytics". –  S.Lott Apr 22 '11 at 9:49
    
I must admit you're right! What I'm looking for is exactly a reporting tool. I was convinced I had to do a new one myself because I didn't know (or even imagine) the existence of more complex programs of what I tried. Your answer helped (re)put me on the right track. So i think I will evaluate carefully existing reporting tools before writing a new software, altough i can't exclude a new one is really needed (for specific requirements - but this is true for every type of software!). –  Hobbes Apr 27 '11 at 19:44
    
For the curious, I tried Pentaho Reporting, an easy-to-use but limited reporting tool. Immediately after this post I'm searching other tools and I tried Pentaho AdHoc Reporting, which give the user more flexibility in defining search criteria. Then I discover that there are tools that seems even more flexibile, such Pentaho Studio Design, Eclipse BIRT and JasperReports. I will evaluate these one. –  Hobbes Apr 27 '11 at 19:56
    
@Hobbes: The domain is huge. It is a well-solved problem. The odds of needing to write a new software is almost zero. The best part is that all of these packages sit squarely on SQL, so changing from one to another is low-cost and low-risk. Pick one and get started rather than carefully study each alternative from numerous viewpoints. –  S.Lott Apr 27 '11 at 20:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.