Lenster wrote:
I am investigating which would be the most appropriate RDMS to use for a new Intranet based application. I have rounded down my choice to two candidates - SQLite and MySQL.

Ok. I think that PostgreSQL and Firebird are almost always better choices than MySQL for a database system though.

The application needs to be available to about twenty users on a daily basis, with most of those users making no more than five 'write' transactions a day, and around twenty 'read' transactions a day. [...]

Sounds like soemething SQLite can easily handle. SQLite only gets inappropriate if concurrent writers happen often. But you have to stress a web application quite a lot to make that happen.

Depending upon its success the application may well develop to incorporate other datasets and users - so the RDMS needs to be able to develop without difficulty.

Unless you build a heavy-traffic web application or need advanced SQL features, SQLite should be appropriate.

IMHO SQLite looks as though it would be the fastest to develop and with the least resources required

That's true. But after you have set up and configured a database server, I don't think there's a big difference between ease of development for SQLite vs. MySQL vs. PostgreSQL vs. Oracle vs. whatever.

The difference is that setting up and configuring a database server costs time, and with SQLite you just don't need to do it.

but after reading some SQLite documentation: "A good rule of thumb is that you should avoid using SQLite in situations where the same database will be accessed simultaneously from many computers over a network filesystem." [...]

That is irrelevant for a web application. Network filesystems are SMB (Windows shares), NFS, Netware shares, etc. So this paragraph is about multiple client applications accessing the same SQLite database file over a network filesystem. In the case of a web application, you only really have one application that accesses the SQLite database file. And the SQLite database file is locally accessed.

I am concerned that even though I expect light usage it is likely that multiple users will access the same database concurrently. [...]

That's abssolutely no problem for read operations ("select"). For write operations ("insert"/"update"/"delete"), SQLite uses locks, so only one connection can modify the database at any time. Just be sure to COMMIT or ROLLBACK as soon as you can.

HTH,

-- Gerhard

Reply via email to