powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UserID as bigint (философское)
25 сообщений из 26, страница 1 из 2
UserID as bigint (философское)
    #39377501
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Друзья,
а чем плоха идея таблицы
Код: plsql
1.
2.
3.
4.
create table "User" (
  UserName varchar(31), -- понятно
  UserID bigint -- fk Person (PersonID)
)


чтобы использовать UserID более, чем везде. Например в History изменений во всех таблицах. Желаю тынцев, шандалов, любой критики. Нубов не желаю.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377514
Граур Станислав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSДрузья,
а чем плоха идея таблицы
Код: plsql
1.
2.
3.
4.
create table "User" (
  UserName varchar(31), -- понятно
  UserID bigint -- fk Person (PersonID)
)


чтобы использовать UserID более, чем везде. Например в History изменений во всех таблицах. Желаю тынцев, шандалов, любой критики. Нубов не желаю.

UserID bigint -- это сколько же юзеров планируется?
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377519
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минус в том что для записи в таблицу UserId нужно будет искать этот ID по табличке - лишние действия.
Логины, несмотря на поле 31 символ, обычно все-таки существенно короче, и особого выигрыша по месту вряд-ли получится.

Сейчас же для записи имени юзера в лог достаточно просто объявить поле как

Код: plsql
1.
2.
3.
4.
5.
6.
CREATE TABLE LOG (
...
    A_DT      TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    A_USER    VARCHAR(32) DEFAULT CURRENT_USER,
...
);



и больше ничего не требуется.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377520
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSДрузья,
а чем плоха идея таблицы
Код: plsql
1.
2.
3.
4.
create table "User" (
  UserName varchar(31), -- понятно
  UserID bigint -- fk Person (PersonID)
)


чтобы использовать UserID более, чем везде. Например в History изменений во всех таблицах. Желаю тынцев, шандалов, любой критики. Нубов не желаю.


Вопрос только один, а не появится ли пользователь который не должен быть в Person
ну и структуру наверное вот такую
Код: plsql
1.
2.
3.
4.
5.
6.
create table "User" (
  UserID bigint -- fk Person (PersonID)
  ................
  Здесь куча полей которые нужны для  User и которых нет в Person
  ................
)



А в остальном, почему-бы и нет
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377523
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UUID (GUID) используй!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377527
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksМинус в том что для записи в таблицу UserId нужно будет искать этот ID по табличке - лишние действия.
Думаю что один раз при авторизации достаточно
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377542
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HS,

нормальный подход для трехвенок и веба. Для двухзвеньевых приложений по схеме приложение<->БД лучше использовать стандартных пользователей.

Если в двухзвенках нужно больше информации о пользователе, то можно завести таблицу Employee в которой прописывается связь на имя пользователя

Код: sql
1.
2.
3.
4.
5.
create table Employee (
  EmployeeID bigint not null primary key,
  .....
  UserName varchar(31) -- сюда имя пользователя под которым произошёл вход
)



Для того чтобы извлечь полную информацию достаточно

Код: sql
1.
2.
3.
select *
from Employee
where UserName = CURRENT_USER



Для UserName нужен индекс и возможно UNIQUE KEY
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377582
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Граур Станислав,

Не будем жи мы накануне сингулярности пару байтов экономить? <\шутка>
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377587
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Мимопроходящий,

Номинация ШУТКА ГОДА.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377592
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Симонов Денис,

EmployeeID fk Person (PersonID)

)))
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377617
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksМинус в том что для записи в таблицу UserId нужно будет искать этот ID по табличке - лишние действия.Достаточно в триггере OnConnect записать UserID в контекстную переменную и дальше уже дергать только ее. У меня так и сделано.
Хотя, местные гуру говорили, что в FB2.5 не очень оптимально доступ к контекстным переменным сделан. Но если использовать только для вставки/апдейта/логов, то, думаю, проблем с производительностью не будет.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377632
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Kirill Razuvaev,

Чот я разлюбил контексные переменные. Предположу, что и с селектом проблем не будет.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377635
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HS,

ты просто не умеешь их готовить. В Firebird 3.0 контекстные переменные вместе с PSQL функциями очень даже гуд.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377652
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВ Firebird 3.0Пользуясь случаем, ткните, плиз, носом, что почитать про переход с 2.5 на 3.0. Случай, вроде, относительно простой, сторонних UDF нет, но...
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377693
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill Razuvaev,

Release Notes, там описаны основные шаги по переходу. На AS CURESOR обрати внимание, ну и на совместимость клиента 2.5 и сервера 3.0
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377696
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда, корпоратив начался, уже в словах ошибки делаю
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377700
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,
к счастью, as cursor у меня нет :-) А RN возьму домой почитать :-)
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377722
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Симонов Денис,

Корпоратив в Венесуэле. <\шутка>
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377730
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HS,

думаешь стоит туда съездить?
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39377734
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Симонов Денис,

Если ты адреналиновый наркоман - ОДНОЗНАЧНО ДА!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
UserID as bigint (философское)
    #39965991
dr.cary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fraks,
Параметр DEFAULT CURRENT_USER не устанавливается по
DEFAULT.
В ответ возвращается сообщение не верный синтаксис.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39966000
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dr.cary
В ответ возвращается сообщение не верный синтаксис.
В ответ на что? Сдается мне синтаксис таки у тебя неверный, его надо распечатать и съесть, чтоб никто не увидел.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39966244
dr.cary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,
В ответ на запрос:
CREATE TABLE `exp`.`tbl` (
`id` INT NOT NULL AUTO_INCREMENT,
`informacion` TEXT NULL,
`data` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user` VARCHAR(45) DEFAULT current_user,
PRIMARY KEY (`id`));

Возвращает:
ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'current_user,
PRIMARY KEY (`id`))' at line 5
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39966245
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dr.cary
check the manual that corresponds to your MySQL server version for the right syntax to use near 'current_user
Тут, в общем-то, написано, что делать.

Ну можно еще на специализированный форум обратиться.
...
Рейтинг: 0 / 0
UserID as bigint (философское)
    #39966308
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dr.cary

ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'current_user,
PRIMARY KEY (`id`))' at line 5


Довольно оригинально задавать вопросы на форуме по Interbase/Firebird в то время как у тебя MySQL :)
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UserID as bigint (философское)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]