At work, I am currently working on a project that is very very similar to that which you have described (although I am working with a much smaller database and probably much fewer users). I have two or three databases that I have to interface with, plus an internal e-mail system, a future employee hours accounting system, and God knows what else.
Because my project is not intended to be high-end where performance is going to be a major issue, I opted to hack things out in Perl, using CGI, DBI, and PostgreSQL.
The advantages, I have found, to this approach are as follows.
- I can hack things up pretty quickly
- I can isolate frequently used subroutines into libraries, making for easier maintenance
- Should we decided to move over to a different database, my code will not require a major overhaul to keep working
- If management want new features, they can be added in pretty quickly
- HTML templates allow you to isolate your middle-ware code from your front-end. This makes updating the front-end a relatively painless task
I will admit that the Perl/DBI/CGI approach is not entirely perfect.
- CGI is noticeably slow unless you use mod_perl (that is if you are also using Apache)
- DBI is quirky and can be confusing
- It's easy to write shit code
In your case, I honestly think that if you went the Perl/CGI/DBI route, in combination with mod_perl, you would have a pretty kick-ass system. It will be versatile, and can accommodate *any* changes or modifications that management want to throw at it. There is nothing that it can't do.
Although I would say to you that if you are working with a huge database which will have a lot of processing done on it by many users, you may need to consider porting your system over to C at some point, depending on whether or not you notice serious performance deficiencies. I have never seen any bench marks to compare C-based CGI applications and mod_perl/CGI applications, so I am only speculating with regards to this performance issue.
You may also want to look into PHP. I have never used it so I can't say as to how well suited it is to this task.
If you want to discuss the Perl//CGI/DBI route further, mail me at wintrowski@yahoo.com and I can further relate to you my experiences.
Wintrowski
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.