Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выбрать правильную архитектуру? 
:(
    Опции темы
kaa
  Дата 30.5.2009, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Собираюсь тут наваять приложение простенькое, на связке Wicket+Spring+Hibernate

В общем уже подошёл к работе с БД и пользователями и встрял:
Есть пользователи и роли, но изначально в системе нет ни одного пользователя - сразу после развёртывания БД-то у нас пустая.

Как тут правильно поступать:

1. Перед равертыванием создают все необходимые таблицы в БД с минимальным необходимым, для нормальной работы, 
    набором данных или как-то инициализируют таблицы в процессе развёртывания?
    Если да, то я что-то ненагуглил  тулов, которые показывают как должна выглядеть таблица с точки зрения Hibernate
    в соответствии с hbm файлом...

2. Таблицы создаются уже в процессе регистрации (а значит и сохранения) первого пользователя?
     В этом случае роли должны быть представленны классами  - если честно неохото хардкодить роли.

3. 50/50 - какие-то таблицы создавать отдельным скриптом (например роли), а какие-то в процессе работы 
    (регистрация нового пользователя с ролью созданной из БД)?

Буду благодарен если подскажите где все эти ньюансы проектирования можно почитать-посмотреть.


P.S.: не ошибся ли я разделом... smile
PM MAIL   Вверх
Samotnik
Дата 30.5.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



ну как же
когда создаешь в SQL   БД, то сразу создай таблицу USERS  и ROLES создай в них поля и
пропиши 2-х основных юзеров  
 - root  
- user

и соответствующие им роли
А затем уже когда приложение будет работать, там будеш походу создавать  Vasja, Petja, Kolja  и сетить им роли  smile 

Это сообщение отредактировал(а) Samotnik - 30.5.2009, 12:51
PM MAIL   Вверх
kaa
Дата 30.5.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Samotnik, 
Спасибо!

Это сообщение отредактировал(а) kaa - 30.5.2009, 13:42
PM MAIL   Вверх
garbuz
Дата 31.5.2009, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



kaa, вот замечательный скрипт, который однажды предложил ivq, естественно что в эти таблицы можно еще чего добавить. Для MySql
Код

CREATE TABLE `roles` (
  `role_id` int(10) NOT NULL auto_increment,
  `role_name` varchar(50) NOT NULL,
  PRIMARY KEY  (`role_id`),
  UNIQUE KEY (`role_name`)
)TYPE=InnoDB;

CREATE TABLE `users` (
  `user_id` int(10) NOT NULL auto_increment,
  `user_name` varchar(50) NOT NULL,
  `user_pass` varchar(50) NOT NULL,
  PRIMARY KEY  (`user_id`),
  UNIQUE KEY (`user_name`)
)TYPE=InnoDB;

CREATE TABLE `users_roles` (
  `user_id` int(10) NOT NULL,
  `role_id` int(10) NOT NULL,
  foreign key (`role_id`) references roles(`role_id`)
    on delete cascade on update cascade,
  foreign key (`user_id`) references users(`user_id`)
    on delete cascade on update cascade
)TYPE=InnoDB;

CREATE VIEW `roles_view` AS
select `users`.`user_name`,
       `roles`.`role_name`
  from `users`, `roles`, `users_roles`
 where `users_roles`.`role_id` = `roles`.`role_id`
   and `users_roles`.`user_id` = `users`.`user_id`;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.