Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 проектирование БД  [new]
yozzi
Member

Откуда:
Сообщений: 24
Доброго времени суток!
Столкнулся с такой задачей: есть сущности Пользователи, Игроки, Команды. Игрок может быть заявлен в нескольких Командах, при этом и Игрок и Команда являются пользователем. Помогите спроектировать схему такой БД, я накидал, но не уверен, что верно.

К сообщению приложен файл. Размер - 112Kb
1 май 21, 10:36    [22317159]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31865
yozzi
Помогите спроектировать схему такой БД, я накидал, но не уверен, что верно.
На первый взгляд всё правильно.
Попросите модератора перекинуть топик в Проектирование БД, тут это не совсем по теме.

Модератор: Тема перенесена из форума "Microsoft SQL Server".


Сообщение было отредактировано: 1 май 21, 12:45
1 май 21, 11:23    [22317172]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 132
зачем _id в TeamPlayers ?
почему к Users стрелки в обе стороны?

Сообщение было отредактировано: 1 май 21, 15:24
1 май 21, 15:31    [22317232]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
fkthat
Member [заблокирован]

Откуда:
Сообщений: 4880
Нарисуй в нормальной нотации - ERD или UML. А то у тебя черти что и ничего не понятно. Может это просто такая нотация, что я вообще не знаю.
1 май 21, 15:47    [22317240]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
yozzi
Member

Откуда:
Сообщений: 24
fkthat,

да это был быстрый набросок... Переделал, убрал id из сущности TeamPlayers

К сообщению приложен файл. Размер - 38Kb
1 май 21, 16:20    [22317252]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
ИВП
Member

Откуда:
Сообщений: 435
ТС путает понятие Сущности и Отношения (таблицы).
Сам написал
yozzi
есть сущности Пользователи, Игроки, Команды.

А кружочки (обязательность) и перпендикуляры (необязательность) на концах связей вроде используются в ER-диаграммах при задании связей между сущностями.
Если это ER-диаграмма, то никакой сущности TeamPlayers быть не может - должна быть связь "Многие ко Многим" между сущностями Игроки и Команды (таблица появится позже).
Если это схема данных (прямоугольники - таблицы (отношения)), то зачем обязательность и необязательность на концах связей?

бабушкин зайчик
зачем _id в TeamPlayers ?

А кому от него хуже? В соседнем топике много про это писали.

Ну и название топика очень оригинальное.
1 май 21, 17:11    [22317262]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
yozzi
Member

Откуда:
Сообщений: 24
ИВП,

Кхм.. я думал, что сущность и есть таблица... выходит, что это схема данных, хотя опять же, я думал, что ER диаграмма и должна отображать модель данных :)
1 май 21, 17:27    [22317266]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53119

yozzi
я думал, что сущность и есть таблица...

"Сущность" - понятие логической модели.
"Таблица" - понятие физической модели.
Они не всегда соотносятся как 1:1 поэтому теоретики их разделяют.

Posted via ActualForum NNTP Server 1.5

1 май 21, 17:39    [22317268]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 132
сущности в приложении
таблицы в БД
ИВП
А кому от него хуже? В соседнем топике много про это писали.

это ~5 лишних байт на каждую строку

Сообщение было отредактировано: 1 май 21, 18:43
1 май 21, 18:51    [22317276]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3992
yozzi
Столкнулся с такой задачей:

Начало правильное, но постановки самой задачи нет...
yozzi
есть сущности Пользователи, Игроки, Команды. Игрок может быть заявлен в нескольких Командах, при этом и Игрок и Команда являются пользователем.

Это не постановка задачи - это ваше личное видение решения проблемы, которое вы предлагаете обсудить без самой постановки задачи.
Вопрос:
yozzi
при этом и Игрок и Команда являются пользователем

Пользователем чего ?

Я лично вообще ничего не понял... вы можете по русски сказать, например хочу сделать учет коней и жокеев на скачках... нужно считать забеги, места и т.д.
1 май 21, 20:51    [22317301]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
fkthat
Member [заблокирован]

Откуда:
Сообщений: 4880
yozzi
да это был быстрый набросок... Переделал, убрал id из сущности TeamPlayers

Идея в целом верна, но с cardinality беда везде. У тебя для одного UserType может быть 0-∞ Users. Для Player и Team всегда есть один User (тут все верно), но для одного User может быть только 0-1 Player или 0-1 Team. Остальное все, вроде бы, ОК.
1 май 21, 21:43    [22317308]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3992
yozzi
при этом и Игрок и Команда являются пользователем


А это из серии:
Смешались в кучу кони, люди... (из Бородино)
Пользователи БД - это люди (грубо говоря) допущенные к информации БД и это не обязательно игроки (это могут быть администраторы, менеджеры, операционисты, которые имеют разные права и обязанности по ведению и сопровождению БД)... ну и естественно сами игроки по решению администратора могут быть допущены к информации как пользователи (с правами только просмотр - иначе это будет полный бардак)...
Ну, чтобы было понятнее - если в кадровой учетной системе предприятия зарегистрирована уборщица, то это не означает, что ей нужно автоматически выдать логин и пароль для доступа к самой учетной системе...

Сообщение было отредактировано: 1 май 21, 21:42
1 май 21, 21:47    [22317309]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
fkthat
Member [заблокирован]

Откуда:
Сообщений: 4880
vmag
Это не постановка задачи - это ваше личное видение решения проблемы, которое вы предлагаете обсудить без самой постановки задачи.
vmag
Пользователи БД - это люди (грубо говоря) допущенные к информации БД и это не обязательно игроки (это могут быть администраторы, менеджеры, операционисты, которые имеют разные права и обязанности по ведению и сопровождению БД)... ну и естественно сами игроки по решению администратора могут быть допущены к информации как пользователи

Ты не находишь, что ты сейчас и сам предлагаешь свое
vmag
личное видение решения проблемы
просто выдуманное из головы :)
2 май 21, 10:28    [22317386]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3992
fkthat,

Не нахожу, то что 2+2=4 придумал не я, если кто то не видит 2+2 это его проблема
2 май 21, 22:09    [22317639]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3992
fkthat,

А что касается тупого решения в лоб по псевдопостановке задачи, то достаточно трёх таблиц со второй картинки справа: игроки + команды + связующая, нужно только в игроки добавить поля логин и пароль...
Таким образом любой игрок автоматически становится пользователем, а так как любая команда состоит из множества игроков - пользователей, то и команда по факту пользователь. Это азы абстрактной алгебры.... И да симметрия в этом случае не работает. Наличие логина и пароля на команду не обеспечивает отдельных игроков привилегиями пользователя если они не входят ни в одну команду
2 май 21, 22:25    [22317643]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
fkthat
Member [заблокирован]

Откуда:
Сообщений: 4880
vmag
А что касается тупого решения в лоб по псевдопостановке задачи, то достаточно трёх таблиц со второй картинки справа: игроки + команды + связующая, нужно только в игроки добавить поля логин и пароль... Таким образом любой игрок автоматически становится пользователем, а так как любая команда состоит из множества игроков - пользователей, то и команда по факту пользователь. Это азы абстрактной алгебры.... И да симметрия в этом случае не работает. Наличие логина и пароля на команду не обеспечивает отдельных игроков привилегиями пользователя если они не входят ни в одну команду

Я не понял вообще ничего (видать, для меня твоя абстракная алгебра слишком абстракная), но ОК, будь по твоему.
2 май 21, 23:00    [22317652]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 132
vmag
а так как любая команда состоит из множества игроков - пользователей, то и команда по факту пользователь

крутая логика...
но нет, спасибо
пусть лучше мыши отдельно, а зёрна отдельно
2 май 21, 23:07    [22317656]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3992
бабушкин зайчик
пусть лучше мыши отдельно, а зёрна отдельно


ага, а если команда поедет на поезде, то нужно выдать логин и пароль еще и поезду...
3 май 21, 13:24    [22317770]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
fkthat
Member [заблокирован]

Откуда:
Сообщений: 4880
vmag
ага, а если команда поедет на поезде, то нужно выдать логин и пароль еще и поезду...

Поезда уже давно поддерживают вход по логину и паролю.
3 май 21, 13:56    [22317789]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 132
vmag, откуда вообще у команды взялся логин и пароль?
команда - это набор юзеров (включая владельца) и вот у них есть л/п, а команде то он зачем
3 май 21, 18:05    [22317908]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
yozzi
Member

Откуда:
Сообщений: 24
бабушкин зайчик,

Давайте попробую объяснить, почему я так решил сделать, ну и вобщем задачу. Я разрабатываю информационную систему для команд и игроков, и хотел бы, чтобы можно было регистрировать и новые команды и новых игроков, ну и соответственно входить под ними в систему, у команды свой логин для входа, у игрока - свой. Можно конечно добавить на форме входа выпадающий список «войти как...» и в зависимости от этого решать кто это, игрок или команда, но мне это решение не нравится.

Возможно, я намешал сильно... может тогда подскажите, как можно продумать? Может, конечно, стоит использовать такую роль как «администратор команды» у пользователя, но если этот администратор тоже будет игроком? В таком случае нужно, чтобы у пользователя были роли и «игрок» и «администратор команды», так будет правильнее?
3 май 21, 23:10    [22318011]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3992
бабушкин зайчик
команда - это набор юзеров (включая владельца) и вот у них есть л/п, а команде то он зачем


алилуя... не прошло и недели как дошло... раз 5-10 перечитал топик ?
3 май 21, 23:42    [22318035]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
fkthat
Member [заблокирован]

Откуда:
Сообщений: 4880
yozzi
Может, конечно, стоит использовать такую роль как «администратор команды»

Ничего в этом сложного. Всего лишь добавить в отношение "TeamPlayers" атрибут "роль". Логин для команды и вправду как-то криво - это будет как та бригада Стаханова, которая вся спускалась в шахту под его логином

И еще. Правильней отделить логин/пароль в отдельное отношение "Credentials" и для него тоже сразу предусмотреть субклассирование. Вход потенциально может быть не только по логину и паролю, да и вообще credentials это сама по себе отдельная сущность.
3 май 21, 23:47    [22318038]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3992
yozzi
Возможно, я намешал сильно... может тогда подскажите, как можно продумать? Может, конечно, стоит использовать такую роль как «администратор команды» у пользователя, но если этот администратор тоже будет игроком? В таком случае нужно, чтобы у пользователя были роли и «игрок» и «администратор команды», так будет правильнее?


по уму админы БД независимы и продвинуты (и лучше когда их 1-2, тогда можно понять с кого спросить за косяки) и если даже дать всем капитанам команд права админов, большая вероятность, что половина из них скажет мне это и нафик не уперлось... читать инструкции, что-то заводить, корректировать, я даже не знаю с какой стороны подойти к компу, которого у меня кстати и нет, кому нужно - пусть и ковыряет эту БД, ну а просто зайти и посмотреть раз в месяц что и как я наверно смогу ...

Сообщение было отредактировано: 4 май 21, 00:01
4 май 21, 00:01    [22318044]     Ответить | Цитировать Сообщить модератору
 Re: проектирование БД  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 132
yozzi
бабушкин зайчик,

Давайте попробую объяснить, почему я так решил сделать, ну и вобщем задачу. Я разрабатываю информационную систему для команд и игроков, и хотел бы, чтобы можно было регистрировать и новые команды и новых игроков, ну и соответственно входить под ними в систему, у команды свой логин для входа, у игрока - свой. Можно конечно добавить на форме входа выпадающий список «войти как...» и в зависимости от этого решать кто это, игрок или команда, но мне это решение не нравится.

Возможно, я намешал сильно... может тогда подскажите, как можно продумать? Может, конечно, стоит использовать такую роль как «администратор команды» у пользователя, но если этот администратор тоже будет игроком? В таком случае нужно, чтобы у пользователя были роли и «игрок» и «администратор команды», так будет правильнее?

нет у команд никаких логинов/паролей, есть владелец команды и он юзер
также как и все члены команды (он также может быть членом и играть в ней)
а роли - это система авторизации, там роли юзеров и группы правил, вот через неё все доступы и реализуются

Сообщение было отредактировано: 4 май 21, 00:38
4 май 21, 00:44    [22318068]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Проектирование БД Ответить