Всего сообщений: 23320. Дата и время последнего сообщения: 13.11.11 15:51
Тема: Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 29.07.10 12:23 | Ссылка на пост |
|
Это ведь свободный форум? )) Может кто неучу поможет разобраться? Пытаюсь в Access или в Open Base заделать себе базу данных по массовым делам с которыми работаю. Так что бы потом исковые и сопутствующие документа полуавтоматически печатались (через отчеты). Так вышло, что массовые заявления у меня это заявления о взыскании задолженности по оплате за ЖКУ Вот вышла первая задача. Имеются три таблицы: Адреса: -ID (ключевое поле, индекс) -Адрес (либо еще вариант с разбиением адреса на отдельные поля)
Физлица: -ID (ключевое поле, индекс) -Фамилия -Имя -Отчество -Пол -Дата рождения
Вещные права: -ID (ключевое поле, индекс) -Лицо (связь к ID полю таблицы Физлица) -Адрес (связь к ID полю таблицы Адреса) -Титул -Размер
пытаюсь свести это в Access: делаю таблицы, устанавливаю связи, затем создаю форму вида
Главная форма: -Адрес Подчиненная форма в табличном представлении: -Фамилия|-Имя|-Отчетство|-Титул|-Размер|
открываю форму и результат... Поле Адрес редактируется, а в подчиненной форме поля никак не редактируются и не изменяются.
Чего я не понимаю? ) |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Я в своё время пытался колупаться в Access (я, программер со стажем! в прошлой жизни) - плюнул и сделал всё за два дня в Кларионе.
Какая-то у Access кривая модель реляционных БД.
Совет - адрес обязательно разбивать на поля, а если речь идёт о небольшом нас. пункте или районе, то можно просто иметь отдельный справочник домов (в характеристику дома входит улица, номер и корпус), чтобы при заполнении карточки выбирать сразу нужный дом (отсортированы по улицам, а внутри по номерам) и только дописывать квартиру - это резко снизит количество ошибок в адресах, главный бич подобных приложений. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 29.07.10 14:41 | Ссылка на пост |
|
видимо все равно придется писать )
есть разумение, сделать структуру в виде:
Self_ID | Major_ID | Minor_ID | Content |
суть следующая: Self_ID - уникальный идентификатор записи Content - содержимое записи.
а поля Major_ID и Minor_ID содержат в себе ссылки на другие записи с помощью которых организуются связи в базе.
то есть каждая запись в базе сможет выполнять функции организатора структуры и также содержать с себе сведения.
поясняю. на примере автомобиля. автомобиль состоит из частей: двигатель, кузов, шасси. создаются записи с Content: ID1 | nill | nill | автомобиль, ID2 | nill | nill | двигатель, ID3 | nill | nill | кузов, ID4 | nill | nill | шасси а также записи организующие связи: ID5 | ID1 | ID2 | nill ID6 | ID1 | ID3 | nill ID7 | ID1 | ID4 | nill
даже больше, поскольку реальность представляет множество связей, например, целое-часть, класс-вид, предыдущий-следующий, выше-ниже, то создав соответствующие записи по эти категориям, можно связать их с указанными выше связями.
способ унифицированно записывать и структуру базы и ее содерждимое + каждую запись можно подчинить множеству других либо множество других подчинить отдельной записи. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Понятно, о чём речь. Но на практике реализация таких моделей, как правило, требует больших вычислительных ресурсов. Access просто сдохнет. Кроме того, это квалифицированный программер нужен.
Разумнее в прикладной задаче моделировать объекты с их реальными свойствами и реальными связями, нежели городить универсальный Механизм Описания Всего На Свете. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
| Зачем три таблицы? По содержанию это одна таблица. Имхо, быстрее свести все данные в одну, не заморачиваясь со связями и свойствами форм. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 29.07.10 15:47 | Ссылка на пост |
|
Автор: matador - Дата, время: 29.07.10 15:39 Зачем три таблицы
это начало. позднее к адресам будет еще привязываться прописка граждан к адресам будут привязываться начисления на ЖКУ к гражданам будет привязываться внесение платы за ЖКУ
и т.д. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 29.07.10 15:59 | Ссылка на пост |
|
Автор: Капитан - Дата, время: 29.07.10 15:04 Но на практике реализация таких моделей, как правило, требует больших вычислительных ресурсов
это да. но все оптимизируется )
Автор: Капитан - Дата, время: 29.07.10 15:04 Кроме того, это квалифицированный программер нужен
для очень качественной программы, а для простого примера моих знаний достаточно.
Здесь пример действующей базы по такой структуре. Писал для себя, потому ошибочки имеются. Демонстрирует как гибко может развиваться структура базы. + умеет привязывать к узлам графические файлы со сканера.
http://letitbit.net/download/72637.7260571040e99e59d88c73f52/SAB22.zip.html |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 29.07.10 16:06 | Ссылка на пост |
|
Автор: matador - Дата, время: 29.07.10 15:39 Зачем три таблицы?
+ еще может быть, что на одну квартиру несколько правообладателей (совместная/долевая собственность). + у лица могут быть права на несколько квартир |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Автор: matador - Дата, время: 29.07.10 15:39 По содержанию это одна таблица. Имхо, быстрее свести все данные в одну, не заморачиваясь со связями и свойствами форм.
Как всегда, выигрываем на нормализации данных - проигрываем на управлении ими.
В одну таблицу долго и нудно придётся забивать адреса с одноимёнными улицами, резко возрастёт количество ошибок ввода оператором и т.д.
Автор: Чайка Джонатан Ливингстон - Дата, время: 29.07.10 15:59 это да. но все оптимизируется
В данном случае игра не стоит свеч, ИМХО. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Если надо несколько связанных таблиц, тогда так и будет - Автор: Чайка Джонатан Ливингстон - Дата, время: 29.07.10 12:23 Поле Адрес редактируется, а в подчиненной форме поля никак не редактируются и не изменяются.
потому что данные подчиненной таблицы просто жестко привязаны по ключу к главной таблице, а экранная форма редактирования создана на основе главной таблицы.
Каждой таблице - свою форму редактирования, насколько я помню Access. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 29.07.10 16:32 | Ссылка на пост |
|
Автор: matador - Дата, время: 29.07.10 16:28 Каждой таблице - свою форму редактирования, насколько я помню Access.
то есть я не смогу сделать форму с помощью которой по выбранному адресу буду создавать сразу записи о правах конкретных лиц на это жилое помещение?
надо отдельно создавать физлиц, отдельно создавать адреса и отдельно их связывать в 3-ей форме? |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Автор: Капитан - Дата, время: 29.07.10 16:09 В одну таблицу долго и нудно придётся забивать адреса с одноимёнными улицами, резко возрастёт количество ошибок ввода оператором и т.д.
Это списком допустимых значений поля решается. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Автор: Чайка Джонатан Ливингстон - Дата, время: 29.07.10 16:32 то есть я не смогу сделать форму с помощью которой по выбранному адресу буду создавать сразу записи о правах конкретных лиц на это жилое помещение?
надо отдельно создавать физлиц, отдельно создавать адреса и отдельно их связывать в 3-ей форме?
Чтобы на основании двух таблиц создать третью, нужна не форма, а отчет, или как там обработка в Access называется... Эх, давно я не брал в руки шашек. ©  |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 29.07.10 16:44 | Ссылка на пост |
|
Автор: matador - Дата, время: 29.07.10 16:40 Чтобы на основании двух таблиц создать третью, нужна не форма, а отчет, или как там обработка в Access называется...
нет, иначе. 3 таблицы, это Физлица, Адреса и таблица Права Вот таблица Права содержит в себе записи о том какие права у какого лица имеются на какое помещение. это не две таблицы в третью объеденены.
а форма позволила бы удобно редактировать данные, организовав ввод одновременно в эти три таблицы. но не выходит!! |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Автор: matador - Дата, время: 29.07.10 16:34 Это списком допустимых значений поля решается.
Не решается для реальных задач. Там сотни значений. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
| Однако, могут, оказывается, подчиненные формы редактироваться без проблем: http://lessons-tva.info/articles/informat/10.html |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Всё равно Access это ...па.  |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 30.07.10 11:40 | Ссылка на пост |
|
Вот моя структура

Вот создаю форму мастером

Форма создается как надо, но при попытке редактирования выходит

 
[ Сообщение изменено автором 30.07.2010 11:46 ]
|
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
А что, эта задача будет работать в нескольких субъектах РФ?  |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 30.07.10 21:03 | Ссылка на пост |
|
Автор: Капитан - Дата, время: 30.07.10 15:29 А что, эта задача будет работать в нескольких субъектах РФ?
учитывая, что таблица Адреса будет использовать не только для идентификации жилого помещения в городе Ноябрьске, но и для обозначения прописки собственника - "ДА" Собственник жилого помещения в Ноябрьске может проживать где угодно[ Сообщение изменено автором 30.07.2010 23:13 ]
|
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
| Понял. В общем, основной файл отношений и куча связанных справочников. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 30.07.10 23:18 | Ссылка на пост |
|
Автор: Капитан - Дата, время: 30.07.10 21:07 В общем, основной файл отношений и куча связанных справочников.
скорее несколько талиц, описывающих объекты, скажем: Лица, Адреса, Услуги и т.п. и несколько таблиц, описывающих отношения между объектами, типа: права, прописка и т.п. |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
| Ну и как удаётся укротить Access? |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
Автор: Чайка Джонатан Ливингстон
Дата, время: 01.08.10 12:23 | Ссылка на пост |
|
Автор: Капитан - Дата, время: 01.08.10 09:55 Ну и как удаётся укротить Access?
нет. все получается неудобным и громоздим. насколько я понял без скриптов на VB сделать все удобным не получится . автоматичский определитель пола лица по отчеству (*вна, *вич) все равно писать, как и многое другое, так что решил сразу написать свое приложение на чем умею, и не тратить время на скрипты - быстрее сделаю.
MySQL - сложно для понимания? |
| [ Цитировать ] |
| |
Тема: Re:Структура базы данных |
|
Автор: Чайка Джонатан Ливингстон - Дата, время: 01.08.10 12:23 решил сразу написать свое приложение на чем умею
Вот и я так же.
Автор: Чайка Джонатан Ливингстон - Дата, время: 01.08.10 12:23 MySQL - сложно для понимания?
Да нет, если без хитросложных запросов. |
| [ Цитировать ] |
| |