Here is another idea.
Each of users has his own local copy of Calibre Library, with metadata.db.
Setup some kind of CVS system - what programmers use when many people have to work on the same bunch of source code files. It can be CVS, mercurial, git, whatever.
http://en.wikipedia.org/wiki/Compari...ntrol_software
You want to work on database maintenance. Before starting Calibre on your machine you import changed books and opf files from server, merging it with your database. Then you run Calibre repair database, to make your metadata.db reflect new version of database from server. When you finish the edit, you commit your changes (again without metadata.db) back to the server. You have to manually review any cases when the system finds file on server that has been changed since you checked out the files.
Such systems for developers are built to handle situations when several people make change to same source file.
As an added benefit you can return to state of your library from any given date.