Онлайн-библиотекарь на Java-движке

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

За несколько вечеров с помощью своего сервлета произвольных запросов к БД создал несколько таблиц, необходимых для функционирования онлайнового каталога книг. Для хранения инофрмации о пользователях системы используется таблица webi_users с полями статического размера - для быстрого поиска и сортировки. Пользователи регистрируются не только для библиотеки, но и в другие проекты.

Code: Select all

   show fields in webi_users (FIELD TYPE KEY NULL DEFAULT EXTRA) :

   +------------------------------------------------------------------------------------------+
   | FIELD     | TYPE                                 | KEY | NULL | DEFAULT | EXTRA          |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_id    | int(8) unsigned                      | PRI |      | null    | auto_increment |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_name  | char(16)                             | MUL | YES  | null    |                |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_pass  | char(32)                             |     | YES  | null    |                |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_email | char(50)                             |     | YES  | null    |                |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_state | set('guest','user','editor','admin') | MUL | YES  | guest   |                |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_rtime | datetime                             |     | YES  | null    |                |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_ltime | datetime                             | MUL | YES  | null    |                |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_attr  | int(3)                               |     | YES  | null    |                |
   |-----------+--------------------------------------+-----+------+---------+----------------|
   | usr_from  | char(16)                             | MUL | YES  | null    |                |
   +------------------------------------------------------------------------------------------+
Доступ к проектам осуществляется за счёт групп (таблица webi_groups):

Code: Select all

   show fields in webi_groups (FIELD TYPE KEY NULL DEFAULT EXTRA) :

   +---------------------------------------------------------------------+
   | FIELD     | TYPE            | KEY | NULL | DEFAULT | EXTRA          |
   |-----------+-----------------+-----+------+---------+----------------|
   | grp_id    | int(4) unsigned | PRI |      | null    | auto_increment |
   |-----------+-----------------+-----+------+---------+----------------|
   | grp_num   | int(7)          | MUL | YES  | 0       |                |
   |-----------+-----------------+-----+------+---------+----------------|
   | grp_name  | char(8)         | MUL | YES  | null    |                |
   |-----------+-----------------+-----+------+---------+----------------|
   | grp_table | char(16)        |     | YES  | null    |                |
   |-----------+-----------------+-----+------+---------+----------------|
   | grp_url   | char(20)        |     | YES  | null    |                |
   +---------------------------------------------------------------------+
Связь между юзерами и группами задаётся таблицей webi_user_group:

Code: Select all

   show fields in webi_user_group (FIELD TYPE KEY NULL DEFAULT EXTRA) :

   +---------------------------------------------------------------------+
   | FIELD     | TYPE            | KEY | NULL | DEFAULT | EXTRA          |
   |-----------+-----------------+-----+------+---------+----------------|
   | ug_usr_id | int(8) unsigned | MUL |      | 0       |                |
   |-----------+-----------------+-----+------+---------+----------------|
   | ug_grp_id | int(4) unsigned | MUL |      | 0       |                |
   |-----------+-----------------+-----+------+---------+----------------|
   | ug_id     | int(9) unsigned | PRI |      | null    | auto_increment |
   +---------------------------------------------------------------------+
А вот таблица книг (первый вариант - позже всегда можно сделать ALTER TABLE):

Code: Select all

   show fields in webi_books (FIELD TYPE KEY NULL DEFAULT EXTRA) :

   +------------------------------------------------------------------------+
   | FIELD       | TYPE             | KEY | NULL | DEFAULT | EXTRA          |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_id      | int(10) unsigned | PRI |      | null    | auto_increment |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_title   | varchar(255)     | MUL | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_nauth   | int(2) unsigned  |     | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_code    | varchar(32)      | MUL | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_year    | int(4) unsigned  | MUL | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_oyear   | int(4) unsigned  |     | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_pages   | int(4) unsigned  | MUL | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_edition | int(3) unsigned  |     | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_lang    | char(3)          | MUL | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_olang   | char(3)          | MUL | YES  | null    |                |
   |-------------+------------------+-----+------+---------+----------------|
   | boo_desc    | text             |     | YES  | null    |                |
   +------------------------------------------------------------------------+
Авторы заносятся в таблицу webi_persons (сюда же могут быть занесены к примеру актёры или режиссёры для базы данных фильмов):

Code: Select all

   show fields in webi_persons (FIELD TYPE KEY NULL DEFAULT EXTRA) :

   +-----------------------------------------------------------------------+
   | FIELD      | TYPE             | KEY | NULL | DEFAULT | EXTRA          |
   |------------+------------------+-----+------+---------+----------------|
   | prs_id     | int(10) unsigned | PRI |      | null    | auto_increment |
   |------------+------------------+-----+------+---------+----------------|
   | prs_first  | varchar(100)     | MUL | YES  | null    |                |
   |------------+------------------+-----+------+---------+----------------|
   | prs_middle | varchar(100)     |     | YES  | null    |                |
   |------------+------------------+-----+------+---------+----------------|
   | prs_last   | varchar(100)     |     | YES  | null    |                |
   |------------+------------------+-----+------+---------+----------------|
   | prs_same   | int(10) unsigned | MUL | YES  | null    |                |
   |------------+------------------+-----+------+---------+----------------|
   | prs_born   | date             | MUL | YES  | null    |                |
   |------------+------------------+-----+------+---------+----------------|
   | prs_dead   | date             | MUL | YES  | null    |                |
   |------------+------------------+-----+------+---------+----------------|
   | prs_about  | varchar(255)     |     | YES  | null    |                |
   +-----------------------------------------------------------------------+
Связь между книгами и авторами задаётся таблицей webi_book_authors:

Code: Select all

   show fields in webi_book_authors (FIELD TYPE KEY NULL DEFAULT EXTRA) :

   +----------------------------------------------------------------------------+
   | FIELD     | TYPE                   | KEY | NULL | DEFAULT | EXTRA          |
   |-----------+------------------------+-----+------+---------+----------------|
   | ba_id     | int(10) unsigned       | PRI |      | null    | auto_increment |
   |-----------+------------------------+-----+------+---------+----------------|
   | ba_prs_id | int(10) unsigned       | MUL | YES  | null    |                |
   |-----------+------------------------+-----+------+---------+----------------|
   | ba_boo_id | int(10) unsigned       |     | YES  | null    |                |
   |-----------+------------------------+-----+------+---------+----------------|
   | ba_who    | set('author','editor') | MUL | YES  | null    |                |
   +----------------------------------------------------------------------------+
Как видно каждая связь автор-книга имеет флаг 'author' или 'editor'.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Текущее состояние таблиц можно посмотреть вот по этому линку:

http://java.shabarshin.com/servlet/open ... dbase=java
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Под boo_code я буду понимать ISBN, который есть у всех книг, но я натыкался на разное его написание - например:
ISBN 0-7357-1054-6
ISBN 0-596-00543-1
ISBN 1-59200-369-9
ISBN 0-321-33573-2
ISBN 0-07-146893-5
ISBN 0 14 00.9259 1
Вопрос - минусики важны или можно просто как число его сохранять? А в последнем случае вообще используются пробелы и точка...
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shaos wrote:Вопрос - минусики важны или можно просто как число его сохранять?
Да, они имеют важное значение.
Extreme Entertainment
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:
Shaos wrote:Вопрос - минусики важны или можно просто как число его сохранять?
Да, они имеют важное значение.
А что скажешь про вариант записи с пробелами и точкой?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shaos wrote:А что скажешь про вариант записи с пробелами и точкой?
Есть два варианта:

- ошибка;
- есть измемения к стандарту, о которых я не знаю.

:D
Extreme Entertainment
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:
Shaos wrote:А что скажешь про вариант записи с пробелами и точкой?
Есть два варианта:

- ошибка;
- есть измемения к стандарту, о которых я не знаю.

:D
На ошибку не похоже - оно на новой книжке

P.S. Кстати сегодня наткнулся на ISBN на DVD-дисках - оно значит не только книг касается?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shaos wrote:На ошибку не похоже - оно на новой книжке
Не думаю что это показатель, ошибки могут быть везде.
P.S. Кстати сегодня наткнулся на ISBN на DVD-дисках - оно значит не только книг касается?
Впервые слышу о таком. ISBN = International Standart Book Number.
Extreme Entertainment
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:
Shaos wrote:На ошибку не похоже - оно на новой книжке
Не думаю что это показатель, ошибки могут быть везде.
Наткнулся ещё раз на такое же написание - причём в книге указано 2 ISBN - варианта в мягкой обложке и варианта в твёрдой обожке:
ISBN 0-670-88217-8 (hc.)
ISBN 0 14 02.8202 5 (pbk.)
Как видим второй с пробелами и точками...

Ещё одна странность с ISBN - в одной новой книжке натолкнулся на два разных ISBN:
ISBN-13: 978-0-8050-7853-4
ISBN-10: 0-8050-7853-3
Это что за 10 и 13 такие?
Mac Buster wrote:
P.S. Кстати сегодня наткнулся на ISBN на DVD-дисках - оно значит не только книг касается?
Впервые слышу о таком. ISBN = International Standart Book Number.
Ну тем не менее - видел на нескольких
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shaos wrote:Это что за 10 и 13 такие?
10 - старый, 13 - новый, который будет действовать с самого начала 2007-го года. Старый легко превращается вновый добавлением трех определенных цифр в начале номера.
Extreme Entertainment
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Mac Buster wrote:
Shaos wrote:Это что за 10 и 13 такие?
10 - старый, 13 - новый, который будет действовать с самого начала 2007-го года. Старый легко превращается вновый добавлением трех определенных цифр в начале номера.
И кто будет определять эти три цифры?

Мне то какой забивать? Новый - если есть?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shaos wrote:И кто будет определять эти три цифры?
Они давно определены комиссией по стандарту, эти цифры - 987. После того как диапазон будет исчерпан, введут 979.
Мне то какой забивать? Новый - если есть?
Да.
Extreme Entertainment