Subject Re: [firebird-support] Where to start ?
Author Norman Dunbar
Morning Berrie,

On 22/05/13 13:41, berrie_at_m wrote:

> I am on a LAN with approx. 150 users. I want to enable every user to enter 6 fields of data (date, time, name, what, where, follow-up), without the ability to see what other users have entered, or the ability to go back later and manipulate their or other entries (as this could be somewhat sensitive data).
> I managed to create this with MS Access on a laptop, but found out that apparently each user needs to have MS Access installed to be able to enter data. Is Firebird the right application for this?

Access is a desktop "database" and isn't really suited to one database
being shared by numerous people. It can be done, but for 150 users?,
best not. I've suffered numerous corruptions on shared Access databases
and I think (well, my opinion is) that Access is a single user, desktop
database and nothing else - it wasn't designed for multi-user access and
had it (badly) bolted on. Other opinions are available however!

Firebird is not a desktop database, it can be with embedded or local
installations, but it is a client server database. This means that there
is a database server machine (which can be the same one as the client)
and this server runs the Firebird software that controls all the
databases on the server.

The client talks to the server, and the appropriate database, over the
network - or locally in the case of embedded/local use.

Firebird is designed to be multi-user safe, and works extremely well indeed.

Your 150 users on the LAN, however, will need something that allows them
to communicate with the database. In Access, that was Access or VBA
itself, with forms, grids and so on. Firebird doesn't provide this
because Firebird is a database and not a database application.

You can use FlameRobin as your database Adminstrator tool if you need a
GUI based system, or you can use the command line tools supplied with
Firebird - isql/gbak and so on.

The users would need an application - possibly similar to the one you
built/used under Access - but you (or some developers) would need to
build one in Delphi, or wxWidgets, Qt, C++ or whatever.

The data that your users get to see would be linked to their own user id
on the database, your application would connect to the database itself
as the owner, for example, and then read a USER table where all the
authorised users of the system would have their details, and a user_id
column.

That user_id column would also be part of every record of the data you
mention - so you would have 150 different user_ids and each one would
have some or lots of data "owned" by the user_id in question.

The application would be created in such a way as to only read data from
the data table(s) which has the same user_id as the logged on user.

So, is Firebird the right database? Most likely, yes, it is - for
security and resilience. However, you will need to build your
application to allow not only the entry, retrieval and reporting (if
necessary) of the user's own data, but also, to maintain those users as
well - adding new ones, "deleting" old ones and so on. (Probably marking
them as "deleted" but not actually deleting them - but that deepens on
whether or not the data they created needs to be retained after they
have left the company - business rules will dictate this).

HTH

Cheers,
Norm.

--
Norman Dunbar
Dunbar IT Consultants Ltd

Registered address:
Thorpe House
61 Richardshaw Lane
Pudsey
West Yorkshire
United Kingdom
LS28 7EL

Company Number: 05132767