Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645

Как правильно оформить связи в базе

14.09.2017, 21:30. Показов 5427. Ответов 81
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Надо создать базу данных пациентов. Ввод данных через форму. Каждому пациенту присваивается определённый номер (по мере добавления и он будет уникальным). Естественная информация о пациенте: Фамилия, Имя, Отчество, год рождения, пол, Адрес...
Столкнулся с проблемой (да и не одной, но пока хочу решить хоть одну): Есть список районов, и есть список улиц (они хранятся в отдельных таблицах) и их надо выбирать из списка в форме. Но выходит, что они будут вставляться из таблицы и храниться в общей таблице с данными пациентов, а по правильному надо чтоб только их номера ж сохранялись... Вот как этого добиться?
Если делать как в книгах пишут, то при попытке сделать связь один-ко-многим пишет что невозможно вставить данные т.к. они не числовые... Но как могут быть названия районов числовыми?

Выкладываю саму базу
MyPatients1.rar
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2017, 21:30
Ответы с готовыми решениями:

Правильно ли расставлены связи в приложенной базе данных
Добрый день, Я еще новичок в этом деле, и поэтому хотел бы попросить вас о трех вещах: 1. Посмотреть правильно ли расставлены связи в...

Как правильно оформить ссылку?
Подскажите как правильно оформить ссылку/прописать путь. В папке страничка 1.HTML. Внутри папка 1 с другой страничкой 2.HTML Что...

Как правильно оформить выборку?
Добрый вечер! Не хватает опыта в решении такой задачки. Существует обычная html страница(см. фото), в которой обычная таблица(футбольная на...

81
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
15.09.2017, 01:52  [ТС]
Мда... Кто бы мог подумать, что надо просто выбирать таблицу и ни в коем случае не действовать через SELECT !
Ну и если принудительно ставить ширину столбца с просто пусто в 0, то исчезает нумерация в списке...

P.S. Вот только не могу вставить то что вышло (вложения не активны((()
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
15.09.2017, 08:32
Цитата Сообщение от matva Посмотреть сообщение
...при попытке сделать связь один-ко-многим пишет что невозможно вставить данные т.к. они не числовые...
Смотрите пример на примере адресов магазинов, по аналогии к своей БД легко сможете применить.
Поля - Регион, Район, Населенный пункт, Улица, типы и т. п. - ЧИСЛОВЫЕ.
Данные берутся из - ТАБЛИЦ-СПРАВОЧНИКОВ.
Если какого то Наименования, например - Района нет (Отсутствует в списке), то выскакивает сообщение и вы просто нажав Энтер или Ок, можете добавить в справочник это название и в следующий раз оно будет выбираться из списка имеющихся.
Считаю, что связи 1:1 , как у вас для неимеющих опыта работы с ними, сложны и очень даже вредны, ибо столько много всяких нюансов, типа процедур и прочих хитростей нужно предусмотреть, что без особой нужды, это ни кому не нужно.
Миниатюры
Как правильно оформить связи в базе   Как правильно оформить связи в базе  
Вложения
Тип файла: rar Адреса Организаций-01.rar (34.6 Кб, 39 просмотров)
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
15.09.2017, 23:51  [ТС]
Спасибо за ответ.
Да задумка именно в том, что есть таблицы справочники из которых берутся данные. Они не изменяются (а если и изменяются, то редко). Я выше написал, что уже немного подправил, но не могу вставить вложение и показать (почему - не знаю - просто не активно ((()
Насчёт связей 1:1 - тут уже работа не со справочниками. 1 ко многим не работает, как по мне.

P.S. База для работы (для меня), не для сдачи экзамена.
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
16.09.2017, 18:56
matva, страну я прикрепил. Не шло т.к. вы пытались поле с типом данных счетчик прикрепить к текстовому полю. Остальное по аналогии.
Вложения
Тип файла: rar MyPatients1-1.rar (145.2 Кб, 6 просмотров)
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
21.09.2017, 21:04  [ТС]
Немного разобрался... Но возникла следующие проблемы:
1. Как лучше оформить Пункт Домашня адреса?

Лучше чтобы вызывалась отдельная форма (подчинённая) или сразу в основой вводить? Если подчинённая, то как добиться, чтобы в поле Домашня адреса выводились именно текстовые обозначения, а не цифровые?
2. Как изменить размеры полей произвольно? Пытаюсь выделить одно поле и уменьшить, но уменьшаются все. В чем загвоздка?
Пробовал по всякому. Может надо заново переделать форму и вручную все поля вставлять?

Были ещё мысли, но пока не могу их сформулировать )))

P.S. Выкладываю новую версию.
MyPatients2.rar
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
21.09.2017, 21:23  [ТС]
3. Может стоит объединить таблицы tbl_Description и tbl_StatusLocale в одну? В этих таблицах должны храниться данные на каждый осмотр/посещение.
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
23.09.2017, 14:57  [ТС]
Не могу понять как в базе Адреса Организаций-01.rar они вставляют данные в Заголовок формы в поле Адрес?

Ни в данных, ни где бы то ни было нет информации о том, что туда что-то и откуда то вставлялось...
0
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
23.09.2017, 15:01
Цитата Сообщение от matva Посмотреть сообщение
Не могу понять как в базе Адреса Организаций-01.rar они вставляют данные в Заголовок формы в поле Адрес?
Ну скорее всего по связям в источнике данных формы, или возможны варианты с DLookUp() допустим.
Можно и так и эдак, и вверх ногами, и задом - наперёд.
Всё от фантазии заказчика и разработчика
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
23.09.2017, 15:32
matva, т.к. не упоминаете мое погоняло, но по картинке видимо кг мне обращаетесь, соответственно поясняю.
Откройте форму в режиме конструктора
Свойства
Отсутствие в списке
Нажмите на строчку непротивления Данн свойства.
Появится кнопочка справа с тремя точками.
Нажмите в нее и влетите в модуль процедур.
Там все прописано.
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
23.09.2017, 15:37  [ТС]
Ну скорее всего по связям в источнике данных формы, или возможны варианты с DLookUp() допустим.
Да но там нет этого (((

Добавлено через 3 минуты
Извините, если обидел, тем, что не написал Ваш ник...
Цитата Сообщение от PuhKMV Посмотреть сообщение
matva, т.к. не упоминаете мое погоняло, но по картинке видимо кг мне обращаетесь, соответственно поясняю.
Откройте форму в режиме конструктора
Свойства
Это понятно, но вот дальше:
Цитата Сообщение от PuhKMV Посмотреть сообщение
Отсутствие в списке
Нажмите на строчку непротивления Данн свойства.
Это где?
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.09.2017, 15:45
matva, там все просто. Форма Организации основана на запросе из нескольких таблиц, чтобы соединить по ним название и адрес со всеми атрибутами. Откройте свойство Данные формы и там SQL запроса-источника формы. В заголовке формы, в поле Адрес источником поле из запроса с именем Адрес.

Можете скопировать запрос-источник формы, создать новый запрос и вставить в режиме SQL скопированный текст. Выполните запрос и увидите все поля.
1
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
23.09.2017, 15:54
Цитата Сообщение от matva Посмотреть сообщение
Это где?
Явно в источнике данных формы.

Добавлено через 2 минуты
PuhKMV, Привет!
Извини что встрял - твоя разработка (судя по интерфейсу) - сижу, молчу ....

Добавлено через 5 минут
Цитата Сообщение от mobile Посмотреть сообщение
Можете скопировать запрос-источник формы, создать новый запрос и вставить в режиме SQL скопированный текст.
Весьма полезный совет - Поддерживаю эту мыслю!

И ещё - использование динамических источников данных не рекомендуется самой MS - ибо MSA всё равно строит скрытый запрос ...
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
23.09.2017, 15:59  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
matva, там все просто. Форма Организации основана на запросе из нескольких таблиц,
Но там нет ни одного запроса.
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
23.09.2017, 16:02
matva, печатаю на планшете, а он из за любой опечатки переименовывает по своему.
В свойствах формы поставьте курсор мыши на данное свойство.
Увидите с права кнопочку с тремя кнопочками, в туда и жмите мышом.
Я всего лишь 3 поля изменяю
Имя поля 2 раза и 1 раз имя таблицы
Все элементарно.
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
23.09.2017, 16:04  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Откройте свойство Данные формы и там SQL запроса-источника формы. В заголовке формы, в поле Адрес источником поле из запроса с именем Адрес.
Также отсутствует.

0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
23.09.2017, 16:13  [ТС]
Цитата Сообщение от PuhKMV Посмотреть сообщение
В свойствах формы поставьте курсор мыши на данное свойство.
Увидите с права кнопочку с тремя кнопочками, в туда и жмите мышом.
Это вот это менять?
SELECT ("«"+[КраткоеНаименОрг]+"» ") & (""+[ТипОрганизации]+" ") & ("№ "+[НомерОрг]+"") AS Организация, (""+([ИндексОрг])+", ") & (""+([Регион])+", ") & (""+([Район])+", ") & (""+([ТипНП])+" ") & (""+([НасПункт])+", ") & (""+([ТипУл])+" ") & (""+([Улица])+", ") & (""+([ДомОрг])+" ") & (""+([Дом№Орг])+"") AS Адрес, Организации.* FROM Улицы INNER JOIN (ТипыУл INNER JOIN (ТипыОрганизаций INNER JOIN (ТипыНП INNER JOIN (Регионы INNER JOIN (НасПункты INNER JOIN (Районы INNER JOIN Организации ON Районы.Код_Района=Организации.КодРайонаО рг) ON НасПункты.Код_НасПункта=Организации.КодН асПунктаОрг) ON Регионы.Код_Региона=Организации.КодРегио наОрг) ON ТипыНП.Код_ТипаНП=Организации.КодТипаНПО рг) ON ТипыОрганизаций.Код_ТипаОрганизации=Орга низации.КодТипаОрг) ON ТипыУл.Код_ТипаУл=Организации.КодТипаУлО рг) ON Улицы.Код_Улицы=Организации.КодУлицыОрг ORDER BY ("«"+[КраткоеНаименОрг]+"» ") & (""+[ТипОрганизации]+" ") & ("№ "+[НомерОрг]+"");
вот тут:



Да?
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
23.09.2017, 16:59
Ни чё не понял.
В процедуре обработки событий я лично меняю вот это.так-
Миниатюры
Как правильно оформить связи в базе  
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
23.09.2017, 17:03
Видимо я на столько тупой, что сразу много информации уже не способен восприять, так что попрошу частями задавать вопросы, что бы даже я понял. (Если конечно вопрос ко мне. )
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
23.09.2017, 17:12  [ТС]
PuhKMV,
Цитата Сообщение от PuhKMV Посмотреть сообщение
Ни чё не понял.
Если честно, то я тоже не понял...
Насколько я понял, то это процедура на добавление нового значения, если его нет в списке.
А я спрашивал: откуда в поле Адрес берутся данные из поле со списком Адрес Организации?
Как это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2017, 17:12
Помогаю со студенческими работами здесь

Как правильно оформить конструкцию If
Добрый день товарищи. Столкнулся тут с небольшой проблемкой, вроде примитив, а нигде не могу найти правильного подхода. ...

Как правильно оформить DataGrid?
Если я заполняю грид во время разработки, то все нормально А если заполняю программно, то мне не очень нравится его вид. 1. Изначально...

как правильно оформить скрипт
Всем привет! Я с таким сталкивалась всего один раз и работала тогда с yii framework. Сейчас у меня простой php файл. Это как-то...

Как правильно оформить условие
В переменной $page может быть 2 значения delete или же вообще нет данный теперь условие если if ($page == delete) { //...

как правильно оформить код?
я в шарпе недавно и есть непонятный для меня момент - есть такого вида код: try { Stream data = client.OpenRead(serveraddress); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru