powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите связать две таблички.
23 сообщений из 23, страница 1 из 1
Помогите связать две таблички.
    #39134303
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня.
Пытаюсь создать свою первую БД, столкнулся с примитивной задачей, не могу понять как связать 2 таблички.
Итак, у меня есть первая табличка, назовёт её условно "Торговые точки", stores. В ней есть столбцы:
ID (int, Primary Key);
Address;
Description...
и др., простые и не имеющие значение сейчас столбцы.

И есть вторая табличка - "Сотрудники" или employes с полями:
ID (int, Primary Key);
FirstName, SecondName, rank и др.

К каждому магазину могут быть приписаны некоторые сотрудники, с другой стороны сотрудники могут в разные дни работать в разных магазинах (не во всех). Т.е. как я дальше понял это отношение "многие-ко-многим". Но дальше я не понимаю что получается. Это отношение создаёт ещё одну промежуточную табличку. А что делать дальше я не понимаю.

А необходимо что бы в приложении отображались магазины с сотрудниками, которые могут там работать. Как это реализовать? Нужно доработать отношение табличек и/или какой запрос написать для вывода информации о магазине с списком привязанных продавцов.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39134317
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonА необходимо что бы в приложении отображались магазины с сотрудниками, которые могут там работать. Как это реализовать? Нужно доработать отношение табличек и/или какой запрос написать для вывода информации о магазине с списком привязанных продавцов.

Курс по РМД и СУБД проходят в институте. ;-)
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39134321
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Институт давно закончен, курс по БД сдан и забыл.
Вы могли бы в общих чертах на 1-2 абзаца описать необходимые доработки, далее попытаюсь разобраться сам с помощью литературы.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39134324
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arvalon,

Нужна третья таблица, "Приписка сотрудников к магазинам", всего с двумя полями.

Точка_ID
Сотрудник_ID

Только меня смущает оговорка "сотрудники могут в разные дни работать в разных магазинах". Это расписание по дням нужно хранить?
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39134353
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cane Cat FisherТолько меня смущает оговорка "сотрудники могут в разные дни работать в разных магазинах". Это расписание по дням нужно хранить?
Нет, не нужно

Cane Cat FisherArvalon, Нужна третья таблица, "Приписка сотрудников к магазинам", всего с двумя полями.
Точка_ID
Сотрудник_ID

Да, я понял что будет что-то похожее на это, пример из статьи про отношения на Хабре:


Допустим я получу такую табличку. А далее, допустим, в приложении у меня должна выводиться табличка из двух столбцов:

Магазин Сотрудники
Магазин 1 Иванов, Петров, Сидоров
Магазин 2 Петров, Сидоров
Магазин 3 Иванов
.... ......

Как вообще это реализовывается? На ум сразу только приходит запрос по промежуточной табличке A_B с исключением дублей по полю Точка_ID и сбором всех Сотрудник_ID, в свою очередь тоже с удлением дублей... МОжет это как-то проще делается?
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39134366
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonCane Cat FisherТолько меня смущает оговорка "сотрудники могут в разные дни работать в разных магазинах". Это расписание по дням нужно хранить?
Нет, не нужно

Cane Cat FisherArvalon, Нужна третья таблица, "Приписка сотрудников к магазинам", всего с двумя полями.
Точка_ID
Сотрудник_ID

Да, я понял что будет что-то похожее на это, пример из статьи про отношения на Хабре:


Допустим я получу такую табличку. А далее, допустим, в приложении у меня должна выводиться табличка из двух столбцов:

Магазин Сотрудники
Магазин 1 Иванов, Петров, Сидоров
Магазин 2 Петров, Сидоров
Магазин 3 Иванов
.... ......

Как вообще это реализовывается? На ум сразу только приходит запрос по промежуточной табличке A_B с исключением дублей по полю Точка_ID и сбором всех Сотрудник_ID, в свою очередь тоже с удлением дублей... МОжет это как-то проще делается?

resultset
Точка сотрудникМагазин 1 ИвановМагазин 1 ПетровМагазин 1 Сидоров

получается элементарно,

а преобразовывать это в вид "Магазин 1 Иванов, Петров, Сидоров" - желательно на клиенте.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39134404
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскинresultset
Точка сотрудникМагазин 1 ИвановМагазин 1 ПетровМагазин 1 Сидоров
получается элементарно,

Да, сортировку я осилю )
Кот Матроскина преобразовывать это в вид "Магазин 1 Иванов, Петров, Сидоров" - желательно на клиенте.
Предполагается что клиент будет написан на ASP.NET. И в этом случае формировать финальный вид на клиенте, на web-сервере?
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39134590
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arvalon,

Ну Вам виднее, что может, а чего не может Ваш клиент.
Большинство промышленных серверов смогут при необходимости Вам сделать строку "Иванов, Петров, Сидоров", но по хорошему это не работа сервера.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39135518
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherArvalon,

Нужна третья таблица, "Приписка сотрудников к магазинам", всего с двумя полями.

судя по всему еще и с датой начала и датой конца. Раз сотрудники переходят туда-сюда
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39135537
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonИнститут давно закончен, курс по БД сдан и забыл.
Вы могли бы в общих чертах на 1-2 абзаца описать необходимые доработки, далее попытаюсь разобраться сам с помощью литературы.

Я не пойму, это учебная лабораторка для заочников, или нет?

Интересуюсь не просто так, от этого зависит "широкоохватность" ответов.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39135564
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cane Cat FisherЯ не пойму, это учебная лабораторка для заочников, или нет?
Интересуюсь не просто так, от этого зависит "широкоохватность" ответов.
Не, вполне себе боевой проект, но не приоритетный. По сути справочник.

Ivan Durakсудя по всему еще и с датой начала и датой конца. Раз сотрудники переходят туда-сюда
Нет, у меня задание пока без времени реализовать. Что бы просто видеть кто где может работать/приписан.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39135825
Фотография wizli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arvalon,
Ну в таком виде не рекомендую делать, там НФ и так далее. Почитайте про нормализацию.
Магазин Сотрудники
Магазин 1 Иванов, Петров, Сидоров
Магазин 2 Петров, Сидоров
Магазин 3 Иванов

Можно выводить в таком виде, на сервере или на клиенте, то решать уже вам.
Это выводиться довольно элементарно, джоин и вперед. Ну это вам уже и выше написали.
Магазин Сотрудники
Магазин 1 Иванов
Магазин 1 Петров

И странно, что вам поручили задачу такого уровня, хотя вы не разбираетесь в самых азах, но это уже не наши проблемы
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39135963
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wizliArvalon, Ну в таком виде не рекомендую делать, там НФ и так далее. Почитайте про нормализацию.Читал.
wizliИ странно, что вам поручили задачу такого уровня, хотя вы не разбираетесь в самых азах, но это уже не наши проблемыДа вроде простая задача показалась. Базовые навыки в программировании на C# есть. Подумал что простую БД написать то смогу. Всего то 2 таблички получается. Они же есть готовые с тестовыми данными, записей пока не так много. Но что я в ступоре.
Первая большая табличка с описанием магазинов, вторая с персоналом....
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39136096
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonДа вроде простая задача показалась

Она и есть простая, причем настолько простая, что совершенно не проясняет суть ситуации, и не позволяет дать адекватный совет.

У вас уже есть база данных с магазинами и сотрудниками, и к ней нужно прилепить привязку?

Или вы с нуля пишете? Тогда какие дальнейшие планы? Может оказаться так, что самым адекватным советом будет "откажитесь, бросайте все и бегите".
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39136162
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonИ странно, что вам поручили задачу такого уровня, хотя вы не разбираетесь в самых азах, но это уже не наши проблемыДа вроде простая задача показалась. Базовые навыки в программировании на C# есть. Подумал что простую БД написать то смогу. Всего то 2 таблички получается. Они же есть готовые с тестовыми данными, записей пока не так много. Но что я в ступоре.
Первая большая табличка с описанием магазинов, вторая с персоналом....[/quot]

Она простая, но решение зависит от БД
Например для PotstgreSQL:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 
TableA.NAME,
string_agg(TableC.FIO,', ') AS FIO
FROM TableA
INNER JOIN TableB ON TableA.ID = TableB.TableA_ID
INNER JOIN TableC ON TableC.ID = TableB.TableC_ID
GROUP BY TableA.NAME



Для других БД конкатенация строк может быть другая... или не быть вовсе. ;-)
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39136183
Фотография wizli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arvalon,
Да, вы правы, задача очень простая. Если есть конкретные вопросы, то спрашивайте. Пока, лично мне, не понятно, что вам именно непонятно в этом таске.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39136885
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После дополнительного поиска в интернете и повторного чтения литературы я понял что надо сделать.
Надо сделать ещё одну табличку с 2 столбцами, как на картинке тут выше. Каждый столбец будет внешним ключём к первичным ключам таблиц Сотрудники и Магазины. А для соблюдения уникальности самой промежуточной таблицы у неё надо сделать свой собсвенный первичный составной ключ, состоящий из обоих столбцов.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39136959
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonПосле дополнительного поиска в интернете и повторного чтения литературы я понял что надо сделать.
Надо сделать ещё одну табличку с 2 столбцами, как на картинке тут выше. Каждый столбец будет внешним ключём к первичным ключам таблиц Сотрудники и Магазины. А для соблюдения уникальности самой промежуточной таблицы у неё надо сделать свой собсвенный первичный составной ключ, состоящий из обоих столбцов.
а третьему комменту от Cane Cat Fisher не поверили сразу???
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39136978
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan Durakа третьему комменту от Cane Cat Fisher не поверили сразу???
Там ни слова про ключи.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39137123
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonIvan Durakа третьему комменту от Cane Cat Fisher не поверили сразу???
Там ни слова про ключи.а подумать немного?
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39137129
Arvalon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nafа подумать немного?
Это всё таки форум а не экзамен, затем и спрашиваю. Если что-то самостоятельно не удаётся.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39137183
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arvalon,

Просто для большинства читателей ответ на вопрос "как сделать ключи в связующей таблице?" настолько очевиден, что никто не стал про это упоминать. Вам стоило так и спросить "а как делать в этой таблице ключи?", если именно по этому поводу у Вас были сомнения.
...
Рейтинг: 0 / 0
Помогите связать две таблички.
    #39137488
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArvalonЭто всё таки форум а не экзамен, затем и спрашиваю. Если что-то самостоятельно не удаётся.

Нет, я все-таки чего-то не понимаю в этой жизни.

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

Я просто не понимаю, что советовать дальше. Просто для расширения нашего кругозора, расскажите, что происходит, и как это возможно? Это, наверное, гос.структура?
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите связать две таблички.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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