powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / таблицы users и employees
25 сообщений из 50, страница 1 из 2
таблицы users и employees
    #38884517
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
проектирую складскую БД. В базе есть таблицы Empl, Users, Groups, Users_Groups с полями:

Empl - сотрудники
ID_Empl
ID_Contrag- связь с таблицей контрагенты
ID_Depart- связь с таблицей департаменты
ID_Posts- Должности
ID_Contract
FirstName
LastName
Phones
Resident
Salary
IncomeTax- Ндс
HomeAddr
PostStart

Users - пользователи БД
ID_User
ID_Group
name
Login
Passw
Comment

Groups - группы пользователей БД
ID_Group
Name

Users_Groups - для связи многие-ко-многим
ID
ID_User
ID_Group

Думаю перенести поля таблицы Empl(сотрудники) в Users.
Есть по какими-нибудь причинами необходимость в отдельных таблицах для сотрудников и пользователей БД?

покритикуйте, посоветуйте, плз
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884521
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в словаре БД разве нет инфы про пользователей, ролей, групп и т.д.
Зачем изобретать велосипед?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884526
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257А в словаре БД разве нет инфы про пользователей, ролей, групп и т.д.
Зачем изобретать велосипед?
Вы говорите о security2.fdb?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884527
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или о системных таблицах самой БД?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884536
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159 Вы говорите о security2.fdb? Не знаю что это такое
Delphi159 или о системных таблицах самой БД? Да. Кроме русского наименования (фио у пользователя) не вижу ничего нового. Зачем?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884545
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257Delphi159 или о системных таблицах самой БД? Да. Кроме русского наименования (фио у пользователя) не вижу ничего нового. Зачем?
Не понял о чём вы говорите! Чтобы использовать системные таблицы?
Delphi159 Думаю перенести поля таблицы Empl(сотрудники) в Users.
Есть по какими-нибудь причинами необходимость в отдельных таблицах для сотрудников и пользователей БД?
Я говорю о том, чтобы убрать таблицу empl и её поля перенести в Users. Зачем в БД таблица сотрудников, если там заходят только сотрудники, которые можно найти в Users? Залогиняются сотрудники, которые для БД являются пользователями.
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884645
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159Есть по какими-нибудь причинами необходимость в отдельных таблицах для сотрудников и пользователей БД?

покритикуйте, посоветуйте, плз

Могут быть сотрудники, которые не являются пользователями (например, уборщица), и пользователи, которые не являются сотрудниками (например, внешние аудиторы).
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884703
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинDelphi159Есть по какими-нибудь причинами необходимость в отдельных таблицах для сотрудников и пользователей БД?

покритикуйте, посоветуйте, плз

Могут быть сотрудники, которые не являются пользователями (например, уборщица), и пользователи, которые не являются сотрудниками (например, внешние аудиторы).+1
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884705
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по сабжу: тоже задавался таким вопросом.

В принципе можно сделать одну таблицу, где будет признак "Это Юзер". Тогда не будет проблем с уборщицами или внеш.аудиторами.
Но с другой стороны в КИС "юзеры" зачастую зачитываются гораздо чаще не_юзеров и вопрос производительности может стать актуальным. Тем более, что отдельная таблица юзеров будет узкой и короткой. В то время как общая таблица будет широкой и во много раз длиннее (например на заводе).

Думаю не существует единого рецепта.
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884832
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVпо сабжу: тоже задавался таким вопросом.

В принципе можно сделать одну таблицу, где будет признак "Это Юзер". Тогда не будет проблем с уборщицами или внеш.аудиторами.
Но с другой стороны в КИС "юзеры" зачастую зачитываются гораздо чаще не_юзеров и вопрос производительности может стать актуальным. Тем более, что отдельная таблица юзеров будет узкой и короткой. В то время как общая таблица будет широкой и во много раз длиннее (например на заводе).

Думаю не существует единого рецепта.

Плохое решение.
Т.к. могут быть пользователи не сотрудники, например, "гость".

А так обычно решается добавлением новой абстракции.
Приблизительно так
1) Person - конкретный человек, все его данные (ФИО, пол, год рождения, паспорт)
2) Employee - Сотрудник, имеет ссылку на Person и должность (свзяь Employee_Должность, т.к. сотрудник может совмещать должности)
3) User - пользователь, может имеет ссылку на Person (связь ч/з User_Person) и роли (связт ч/з User_Groups)

Опять же объединять Person и Employee так же плохо, т.к. могут быть конкретные лица которые не являются сотрудниками, но могут иметь доступ к данным.

Где-то так.
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884856
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Users - сотрудники/пользователи
Memberships - логины

В Users делаете ссылку на MembershipID. Он может быть пустым. Тогда если у сотруднка нет логина (доступа в базу) то это простой сотрудник, если есть, то это пользователь.

Все настройки доступа, связи с ролями и привилегиями завязываете на таблицу Memberships.
При желании можно переключить сотрудника на другой логин с другими пономочиями.

Во всех документах ссылаетесь на Users (создатели там всякие и т.п.).
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884886
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плохое решение.
Т.к. могут быть пользователи не сотрудники, например, "гость".Какую проблему составляет сделать в таблице признак "Сотрудник" ???

Иметь признаки "Пользователь", "Сотрудник", "Гость" (опционально).
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884938
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПлохое решение.
Т.к. могут быть пользователи не сотрудники, например, "гость".Какую проблему составляет сделать в таблице признак "Сотрудник" ???

Иметь признаки "Пользователь", "Сотрудник", "Гость" (опционально).

А зачем плодить сущности без необходимости?
А зачем нужен признак "гость", когда он там не нужен.
Для ТС, на сколько я понял, главное что есть сотрудники и все остальные, плюс пользователи и все остальные.
Т.е. множества А (сотрудники) и Б (пользователи), они могут пересекаться частично, хотя для ТС нужно хранить их объединение. Остальные интересны постольку поскольку, они могут оказаться либо в А но не в Б, либо в Б но не в А. Те что не в А и не в Б ТС не волнуют. Почему нужна отдельная сущность Person я пояснил в посте выше.
...
Рейтинг: 0 / 0
таблицы users и employees
    #38884968
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по сабжу: это тот случай когда оптимальное решение зависит от задачи.

В каких-то случаях надо делать, как указал mad_nazgul, в других (обычно простых) можно обойтись одной таблицей.
Нет идеальных решений.

Подобные проблемы (усложнение ради правильности) можно найти в любом, даже элементарном модуле.
Пример ? Фамилию следует хранить в отдельной таблице, т.к. она м.б. непостоянной и фигурировать в офиц. документах, н-р доверенностях. :)
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885239
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul
Плохое решение.
Т.к. могут быть пользователи не сотрудники, например, "гость".

А так обычно решается добавлением новой абстракции.
Приблизительно так
1) Person - конкретный человек, все его данные (ФИО, пол, год рождения, паспорт)
2) Employee - Сотрудник, имеет ссылку на Person и должность (свзяь Employee_Должность, т.к. сотрудник может совмещать должности)
3) User - пользователь, может имеет ссылку на Person (связь ч/з User_Person) и роли (связт ч/з User_Groups)

Опять же объединять Person и Employee так же плохо, т.к. могут быть конкретные лица которые не являются сотрудниками, но могут иметь доступ к данным.

Где-то так.
Мне понравился это решение, но хочу уточнить 2 момента:
1) Как я вас понял, в таблице Person включаем только тех людей, кто не сотрудник ?
например,
1."гость"-осматривает мою программу,собирается купить
2. "будущий оператор программы"-пока не принимали на работу и изучает программу
3. Аудит?

Тогда в таблице Person зачем для них сделать запись(ФИО, пол, год рождения, паспорт)- это же будет бесполезная, никому ненужная информация? Или ничего не добавить в Person и для их всех в Users создать один запись- guest(гость) и давать им доступ к БД по роли guest?

2) Если я правильно рассуждаю в первом вопросе, тогда таблица Person теряет значение- не так ли?

dma_caviar Users - сотрудники/пользователи
Отдельные таблицы persons и users или признаки "Пользователь", "Сотрудник" как LSV предлагает?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885245
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159,

Таблица одна. Если у сотрудника есть ссылка на логин, значит это сотрудник-пользователь, если нет значит просто сотрудник.
А вам зачем кстати отличать сотрудников от пользователей?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885279
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dma_caviarDelphi159,

Таблица одна. Если у сотрудника есть ссылка на логин, значит это сотрудник-пользователь, если нет значит просто сотрудник.
А вам зачем кстати отличать сотрудников от пользователей?
Не зачем. Сейчас у меня отдельные таблицы для сотрудников и для пользователей БД и просто думаю на счет их объединения в одну. Но таблицы users, usergroups, roles- это одна группа таблиц, ответственные за безопасность БД и права доступа, а в этой цепи запихнуть persons вместо таблицы Users, пока не могу решать, взвешиваю всё за и против.
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885293
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159Не зачем. Сейчас у меня отдельные таблицы для сотрудников и для пользователей БД и просто думаю на счет их объединения в одну. Но таблицы users, usergroups, roles- это одна группа таблиц, ответственные за безопасность БД и права доступа, а в этой цепи запихнуть persons вместо таблицы Users, пока не могу решать, взвешиваю всё за и против.

А где Вы видите хоть одно "за" объединения?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885315
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот МатроскинDelphi159Не зачем. Сейчас у меня отдельные таблицы для сотрудников и для пользователей БД и просто думаю на счет их объединения в одну. Но таблицы users, usergroups, roles- это одна группа таблиц, ответственные за безопасность БД и права доступа, а в этой цепи запихнуть persons вместо таблицы Users, пока не могу решать, взвешиваю всё за и против.

А где Вы видите хоть одно "за" объединения?
LSV 17292394 17291265 .
Хотя я тоже уже больше сомневаюсь. Ищу оптимальное решение и не хочу быть белой вороной среды черных.
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885320
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не могу понять, почему вы различаете эти понятия. Это все люди, работающие в организации. Просто у кого-то есть доступ в базу, у кого-то нет. А справочник один. Зачем мозг админам выносить.
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885321
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dma_caviar,
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885340
Delphi159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dma_caviarDelphi159,

Если у сотрудника есть ссылка на логин, значит это сотрудник-пользователь, если нет значит просто сотрудник.

если нет ссылки на логин- это не значит что просто сотрудник, это значит что или просто сотрудник или "гость"(аудит, пока не назначен на должность и т.д.). По этому признаку нельзя их различать. А как вы их различаете? Как узнать что гость а не "просто сотрудник"?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885350
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi159если нет ссылки на логин- это не значит что просто сотрудник, это значит что или просто сотрудник или "гость"(аудит, пока не назначен на должность и т.д.). По этому признаку нельзя их различать. А как вы их различаете? Как узнать что гость а не "просто сотрудник"?
А что означает Гость, какие-то особенности в доступе? Не роль ли это?)
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885358
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
галочка "работает" очень сомнительна, вчера уволился, а сегодня принят заново, где история?
...
Рейтинг: 0 / 0
таблицы users и employees
    #38885367
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafгалочка "работает" очень сомнительна, вчера уволился, а сегодня принят заново, где история?
Это я вам на коленке набросал)) Вот вам история.
А вообще в каждом проекте свои требования. Лишние галочки и поля не навязываем. Нам быстрее с нуля все сделать, чтобы было только то что нужно.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / таблицы users и employees
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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