View Full Version : Selecting an appropriate db and language

02-05-2004, 03:48 AM
I am a recent graduate and i am fortunate enough to have gained employment in the IT sector, and I have been given the responsibility to research different languages and database suitable for use for a web site we plan to implement.

My main concern is the database to use:
* The db must be scalable it must be capable of holding a minimum of 100 and a max of 20,000 users.
* Each user must have the capability of having 20+ tables
* Each user may have over 1000 event to enter
For this i was wondering would it be possible to have one main user db for name, id, and password
and then individual db's after this

* The main languages currently been used in the company are delphi and vb, and the senior programmer would like to use these languages in the implementation.
* I have researched the possibility of delphi 7 or 8 (if delphi 8 is released we would prefer to use it),
vb and java.

* There are two possibilities here an internal server or external

Any advice you could provide would be gratefully accepted, this includes web links or books.

Thanking you in advance

02-05-2004, 07:16 AM
Why would each user need 20+ tables? That seems like bad database design to me.

However with 20,000 concurrent users you'll probably want to use Oracle.

02-05-2004, 07:27 AM
I understand where you are coming from on the db design, and we are constantly working on it
but with the db to use there is a major problem my employer isn't willing to pay that mush so do you think MySql would work in the begining while were trying to establish a customer base
also do you know how many concurrent user can access MySql
Thank you for your reply and hope you don't mind helping once again

02-05-2004, 08:21 AM
MySQL is very good with read operations so if most of your users are doing that it could probably handle a couple thousand concurrent users, assuming you have the hardware to support it (no shared hosting, you'll need your own server and you'd need to tweak some default settings).

I still don't see how you'd need tables per person, but to me it doesn't sound like you're using a database as intended.

02-05-2004, 12:51 PM
MySQL could be a great prototype database, especially since it's available at no cost. But at some point, you're probably going to need to use stored procedures, and I don't believe MySQL supports them yet (I could be wrong about that). You'd be better off with Microsoft SQL Server or Oracle as far as that goes. There is a free developer version of SQL Server that you could use until you're ready to go into production.

Of course, the bottom line is that "it depends". You haven't provided nearly enough detail to determine some of these things. If you really plan to support 20,000 users, you'll need to do a lot of testing and optimization to determine the proper course of action, since every situation is different.

02-05-2004, 01:02 PM
In addition to procedural SQL, with that many people using the system concurrently, you may also want to look into distributed transaction handling / locking.

PostgreSQL would be a better starting point for something of this size. It's also free and well supported.

Make sure whoever builds it uses a good database abstraction layer. That will make swapping databases much easier if you need to.

02-05-2004, 10:44 PM
With PostgreSQL you could use schemas - give each user their own, in a single database.