За несколько вечеров с помощью своего сервлета произвольных запросов к БД создал несколько таблиц, необходимых для функционирования онлайнового каталога книг. Для хранения инофрмации о пользователях системы используется таблица webi_users с полями статического размера - для быстрого поиска и сортировки. Пользователи регистрируются не только для библиотеки, но и в другие проекты.
Доступ к проектам осуществляется за счёт групп (таблица webi_groups):
Связь между юзерами и группами задаётся таблицей webi_user_group:
А вот таблица книг (первый вариант - позже всегда можно сделать ALTER TABLE):
Авторы заносятся в таблицу webi_persons (сюда же могут быть занесены к примеру актёры или режиссёры для базы данных фильмов):
Связь между книгами и авторами задаётся таблицей webi_book_authors:
Как видно каждая связь автор-книга имеет флаг 'author' или 'editor'.