cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация

 
 
  ГлавнаяСправкаПоискВходРегистрация  
 
Страниц: 1 2 
Послать Тему Печать
Грамотная связь баз данных (Прочитано 461 раз)
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Грамотная связь баз данных
11.09.2018 :: 22:39:51
 
Уважаемые гуру данного форума! Обращаюсь к Вам за помощью.
Нахожусь сейчас в стадии создания базы данных. Все делаю как по инструкции, но.... Не судите строго за стиль написания, т.к. все термины и сокращения полностью не изучил.
Имеются базы данных (приведу именно те, с которыми встал в ступор):
1. База "Установочные данные" (УД):
- фамилия;
- девичья фамилия;
- отчество;
- дата рождения;
--------------------
- место рождения;
- адрес регистрации;
- адрес места жительства и т.д.
2. База "Адрес" (АД)
- страна (словарь)
- область (словарь)
- район
- населенный пункт
- улица
- номер квартиры
- номер дома и т.д.
3. База Родственные связи
- степень родства (словарь)
- ??????
На основе этих баз создается "Форма ввода" в дальнейшем будет организована "Форма вывода" и "Статистический отчет".
Вопрос:
1. Как организовать связь между базами данных "Установочные данные" и "Форма ввода" так  чтобы точно знать, кем приходятся друг другу два лица (брат, сват, отец и т.д.) (к примеру):
- степень родства (брат, сват, отец и т.д.)
- ФИО и год рождения родственника
- адрес места жительства (страна, область и т.д.).
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 352
Санкт-Петербург
Re: Грамотная связь баз данных
Ответ #1 - 12.09.2018 :: 00:36:39
 
1. Немного странный набор полей в базе УД. Есть фамилия, девичья фамилия и отчество. Имя пропало.
2. Поле "девичья фамилия" лучше не использовать. Лучше делать связь с этой же базой с наименованием "Другие УД". В наше время возможна и ситуация когда Ваня становится Леной. Улыбка. А еще и мужской пол меняет и фамилии, и имена.
3. Поля "адрес регистрации" и "адрес места жительства" тоже лучше не использовать. Если есть такая необходимость, то лучше сделать промежуточную базу "Связь с адресом" с указанием временных периодов отношения объектов и классификацию отношений. Сегодня адрес места жительства может поменяться с адресом регистрации, а завтра наоборот, а послезавтра вернуться на круги своя.
4. Степень родства может быть близкой родственной связью (кровной) и дальней. С характером этих связей еще сложнее. Дальние связи также могут меняться во времени. Как у Петросяна, когда муж женился на молодой соседке, а его жена в отместку вышла замуж за отца соседки и стала мужу тещей.
Наверх
 
 
IP записан
 
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Re: Грамотная связь баз данных
Ответ #2 - 12.09.2018 :: 07:43:29
 
Zuluss писал(а) 12.09.2018 :: 00:36:39:
1. Немного странный набор полей в базе УД. Есть фамилия, девичья фамилия и отчество. Имя пропало.
2. Поле "девичья фамилия" лучше не использовать. Лучше делать связь с этой же базой с наименованием "Другие УД". В наше время возможна и ситуация когда Ваня становится Леной. Улыбка. А еще и мужской пол меняет и фамилии, и имена.
3. Поля "адрес регистрации" и "адрес места жительства" тоже лучше не использовать. Если есть такая необходимость, то лучше сделать промежуточную базу "Связь с адресом" с указанием временных периодов отношения объектов и классификацию отношений. Сегодня адрес места жительства может поменяться с адресом регистрации, а завтра наоборот, а послезавтра вернуться на круги своя.
4. Степень родства может быть близкой родственной связью (кровной) и дальней. С характером этих связей еще сложнее. Дальние связи также могут меняться во времени. Как у Петросяна, когда муж женился на молодой соседке, а его жена в отместку вышла замуж за отца соседки и стала мужу тещей.

По 1 пункту все нормально, так как список полей указывал для примера.
По 2-4 звучит красиво, но как мне это реализовать на практике?
И самая главная проблема - как осуществить связь чтобы в карточке ввода я мог выбрать степень родства и ввести ФИО и адрес? Как сделать так, чтобы база ссылалась сама на себя и какой вид связи указывать?
Критику приветствую, но желательно грамотную и с примером.

Еще раз перечитал мануал (этап 4. лист 17-18  рис. 2.4-2.6), но так ничего и не понял.
Объясните пожалуйста, что и где нужно нажать чтобы получить желаемое, в часности, из словаря выбрать степень родства и заполнить сопутствующие атрибуты (ФИО, дата рождения, страна, область, населенный пункт и т.д.).
Как организовать связь базы "УД" и баз "СР" и "АД"? Какие поля необходимо там создать и какой вид связи организовать между ними?
Спасибо
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 214
Владивосток
Re: Грамотная связь баз данных
Ответ #3 - 12.09.2018 :: 18:07:00
 
Нужно сделать промежуточную базу где уже поставить словарное "Степень родства"
Лицо - Степень родства - Лицо.
Наверх
 
 
IP записан
 
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Re: Грамотная связь баз данных
Ответ #4 - 12.09.2018 :: 18:52:06
 
В том и дело, что база РС и есть промежуточную. Только как организовать связь я не пойму, так как в мануале об этом говорится вскользь.
Постараюсь ещё раз описать то, что необходимо на выходе:
1. В базе УД + <Форма ввода> при вводе информации о родственниках получить:
- Степень родства (из словаря)
- фамилию, имя, отчество, дату рождения
- адрес места жительства (страна, область и так далее )
- иная информация о родственнике
2. В базе РС получить информацию о родственниках
- Степень родства
- фамилию, имя, отчество, дату рождения
- адрес места жительства (страна, область и так далее )
- иная информация о родственнике
Я единственного не могу понять - в базе РС необходимо добавлять строки типа фамилия, имя, отчество, дата рождения, страна, область, район, населённый пункт, номер дома и квартиры, или есть возможность все это подтянуть из Базы УД?
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 214
Владивосток
Re: Грамотная связь баз данных
Ответ #5 - 13.09.2018 :: 01:21:41
 
Вы начинаете собирать все в кучу.
Форма ввода или все таки форма вывода? Если форма вывода, то через формулы можно получить любые значения связаных баз, если ввода, то я не понимаю что надо сделать.
Наверх
 
 
IP записан
 
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Re: Грамотная связь баз данных
Ответ #6 - 13.09.2018 :: 09:51:36
 
Добрый день. Я вроде все описал?! Существует база УД, АД, СР.
База УД является основной, в неё заносятся сведения о сотрудник компании. На её основе создаётся ФОРМА ВВОДА .
Так вот, мне необходимо сделать так, чтобы как в базе УД так и в ФОРМЕ ВВОДА была возможность вводить информацию о родственниках, типа:
-Степень родства
-Фамилия
-Имя
-Отчество
-Дата рождения
-Страна
-Область
-Район
-Населённый пункт
-Номер дома
-Номер квартиры
-Иная информация.
Вопрос: в базу СР необходимо ввести вышеперечисленных поля или есть возможность организовать связь по сложным полям между базами УД и АД? Если есть возможность организовать связь, то как можно это сделать?
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 352
Санкт-Петербург
Re: Грамотная связь баз данных
Ответ #7 - 13.09.2018 :: 12:49:27
 
Возможности CronosPlus существенно отличаются от CronosPro. Формы ввода в первом в корне отличаются от второго, поэтому возникает путаница. Что-либо серьезное в них сделать невозможно.
В первом приближении у Вас должны быть следующие базы:
Лицо
Связи между лицами
Адрес
Отношение лица к адресу
Наверх
 
 
IP записан
 
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Re: Грамотная связь баз данных
Ответ #8 - 13.09.2018 :: 12:59:55
 
А как это сделать правильно?
Какие связи и какие поля нужно создать для данных баз?
Если не сложно покажите на пальцах.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 352
Санкт-Петербург
Re: Грамотная связь баз данных
Ответ #9 - 14.09.2018 :: 00:46:15
 
К сожалению в документации процедура установления связей не расписана подробно.
Попробуем восполнить на примере связи базы "сама-на-себя" (Лицо известно также как...).
Создаем новое поле с типом "ПО" и названием "Лицо известно также как...". Более делать ничего не надо.
Так как мы находимся в проектировании, то этого поля еще не существует, связь устанавливать не с чем.
Нажимаем кнопку выполнить и выходим в окно "Свойства базы". Нажимаем "ОК" и выходим в окно "Проектирование банка".
Теперь можно устанавливать связь. Заходим снова в проектирование свойства поля. Связанные_базы-Изменить.
Попадаем в проектирование сложного поля и дерево связанных полей банка. Выбирам базу ЛЦ и нужное нам поле "Лицо известно также как...".
Нажимаем последовательно "Установить" и "ОК". Далее в проектирование свойства поля и "ОК".
Так будет создана связь ЛЦ-ЛЦ.
Связи с другими базами создаются аналогично, т.е. сначала создаем поля без установления связей, сохраняем структуру, а затем устанавливаем связи.
Наверх
 
 
IP записан
 
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Re: Грамотная связь баз данных
Ответ #10 - 14.09.2018 :: 13:58:03
 
Zuluss писал(а) 14.09.2018 :: 00:46:15:
К сожалению в документации процедура установления связей не расписана подробно.
Попробуем восполнить на примере связи базы "сама-на-себя" (Лицо известно также как...).
Создаем новое поле с типом "ПО" и названием "Лицо известно также как...". Более делать ничего не надо.
Так как мы находимся в проектировании, то этого поля еще не существует, связь устанавливать не с чем.
Нажимаем кнопку выполнить и выходим в окно "Свойства базы". Нажимаем "ОК" и выходим в окно "Проектирование банка".
Теперь можно устанавливать связь. Заходим снова в проектирование свойства поля. Связанные_базы-Изменить.
Попадаем в проектирование сложного поля и дерево связанных полей банка. Выбирам базу ЛЦ и нужное нам поле "Лицо известно также как...".
Нажимаем последовательно "Установить" и "ОК". Далее в проектирование свойства поля и "ОК".
Так будет создана связь ЛЦ-ЛЦ.
Связи с другими базами создаются аналогично, т.е. сначала создаем поля без установления связей, сохраняем структуру, а затем устанавливаем связи.

Спасибо за совет.
Вот попробовал схематично изобразить то, что планирую сделать.
Возможно ли организовать такое построение связей между базами? Так сказать на выходе получить типа генеалогического дерева.
Особенно интересует возможность выбора родственных связей (барт, сват и т.д.) и заполнения остальных атрибутов (адрес, место рождения) родственника в ФОРМЕ ВВОДА. Если да, то как это сделать правильно.
Спасибо.

Наверх
 

Baza.jpg (1105 KB | 2 )
Baza.jpg
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 214
Владивосток
Re: Грамотная связь баз данных
Ответ #11 - 15.09.2018 :: 08:56:13
 
я могу в кроносе 6.4 сделать структуру того что вы хотите, но откроется ли она в плюсе?
Наверх
 
 
IP записан
 
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Re: Грамотная связь баз данных
Ответ #12 - 15.09.2018 :: 09:31:45
 
Спасибо за предложение, но я хочу сам понять и разобраться в этом.
Если есть возможность и желание, то окажите пожалуйста помощь. Подскажите что и где нужно создать, чтобы организовать правильную связь между базами, так как это по задумке малая часть того, что планируется сделать.
Наверх
 
 
IP записан
 
graffserg
Пользователь
**
Вне Форума



Сообщений: 14
Re: Грамотная связь баз данных
Ответ #13 - 17.09.2018 :: 11:35:18
 
Неужели никто не знает и никто не поможет?
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 352
Санкт-Петербург
Re: Грамотная связь баз данных
Ответ #14 - 17.09.2018 :: 15:37:53
 
Вам же уже сказали, как сделать связи.
Также сказали, что сделать ФОРМУ ВВОДА, как Вы хотите, в имеющейся версии программы не получится.
Уже было написано какие базы нужны и какие нужны связи между ними:
1. Лицо - (и работники, и их родственники, которые могут являться и работниками)
2. Связи между лицами (описываются родственные связи между лицами и может быть построена генеалогия)
3. Адрес (только не место рождения, которое только однократное и индивидуальное для каждого лица)
4. Отношение лица к адресу
Если хотите, то добавляйте Организации, которые имеют тенденцию создаваться и ликвидироваться, переименовываться.
Добавляйте Штатную расстановку и перемещения лиц в ней.
Поэтому должны появиться базы:
5. Организация
6. Подразделения организаций (для организации иерархической структуры)
7. Штат
8. Перемещения
Кроме того необходимо описание отношения лица к организации если оно не является работником, а может быть учредителем или акционером.
Что сделать Вам подсказали. Как сделать тоже. Созидайте.
Наверх
 
 
IP записан
 
Страниц: 1 2 
Послать Тему Печать