powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Посоветуйте как лучше создать базу данных о людях/контактах
20 сообщений из 20, страница 1 из 1
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591376
Rockefs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посоветуйте как лучше создать базу данных о людях/контактах (фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.), с возможностью отслеживания смены адреса проживания, смены фамилии, то есть чтобы можно было узнать, например, по какому адресу проживал человек два года назад, какая фамилия у него тогда была
+ тот факт, что некоторые типы информации могут быть и по несколько (например, номера телефонов).
Кроме создания по таблице для каждого поля с информацией о человеке с указанием даты создания записи и сроком действия этой информации + поле yes/no для указания актуальности записи, какие еще есть варианты? На сколько правильный мой подход?
Базу думаю создать в Access. Заранее спасибо всем, кто не прошел мимо.


Схема
Persons
- ID
- Birthday
- …
PersonName
- ID
- Name
- StartDate
- EndDate
- Relevance (yes/no)
Person*
- ID
- *
- StartDate
- EndDate
- Relevance (yes/no)

...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591396
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591397
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просмотрите шаблоны и примеры, там много чего интересного.
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591425
Rockefs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
simply,
авторПросмотрите шаблоны и примеры, там много чего интересного. - Спасибо, но там нет структуры которая бы отвечала моим требованиям.

автор"с возможностью отслеживания смены адреса проживания, смены фамилии, то есть чтобы можно было узнать, например, по какому адресу проживал человек два года назад, какая фамилия у него тогда была + тот факт, что некоторые типы информации могут быть и по несколько (например, номера телефонов). " - Этого нет в представленном шаблоне, а такой функционал для меня важен.
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591426
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rockefs(фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.)
я бы возможно завела 2 таблицы

таб1 -текущая(код1,фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.

таб2 -архив(код,бкод1,дата, реквизит,значение)
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591433
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rockefssimply,
авторПросмотрите шаблоны и примеры, там много чего интересного. - Спасибо, но там нет структуры которая бы отвечала моим требованиям.

автор"с возможностью отслеживания смены адреса проживания, смены фамилии, то есть чтобы можно было узнать, например, по какому адресу проживал человек два года назад, какая фамилия у него тогда была + тот факт, что некоторые типы информации могут быть и по несколько (например, номера телефонов). " - Этого нет в представленном шаблоне, а такой функционал для меня важен.

Тогда зачем спрашивать если у вас свое виденье?
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591438
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что у человека формально может измениться в принципе любой атрибут. Можно сменить имя и фамилию, получить новый СНИЛС, даже можно изменить учётную дату рождения...

Посему предлагаю использовать две базовые таблицы с наворотами.

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

Вторая - таблица Контакты. Там соответственно хранятся именно контакты (возможно, в сериализованной форме). Таблица связана с таблицей Люди соотношением много-к-одному, а также имеет дополнительное поле валидности записи (контакт, потерявший актуальность, не удаляется, а помечается как невалидный).

Поскольку удаление записей в принципе не предусматривается, надобность в архиве отпадает.

Если есть опасность некорректной работы - можно дополнительно ввести таблицу журналирования изменений, а также дополнительные таблицы, которые за счёт переопределения позволяют вести контроль корректности связей. Ну и соответственно процедуры контроля целостности и восстановления минорных несоответствий.

Такая структура создаёт, конечно, определённые сложности по получению актуальной информации (из-за неограниченности количества изменений и, соответственно, длины цепи от поискового атрибута до актуальной записи - а Access не поддерживает рекурсивных CTE), придётся получение делать на основе VBA-процедур (и, возможно, временных таблиц). Упростить процесс можно за счёт ещё одного переопределения - дополнительной таблицы (запись - актуальная запись).
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591439
Rockefs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FochaТогда зачем спрашивать если у вас свое виденье? - А Вы какой вариант предложите?!
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591441
Rockefs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАRockefs(фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.)
я бы возможно завела 2 таблицы

таб1 -текущая(код1,фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.

таб2 -архив(код,бкод1,дата, реквизит,значение) - Да, такой вариант я рассматривал, но проблема в тоом что "Реквизит/Тип информации" может быть разным, когда все данные можно уместить в поле text все ок, а если это файл/картинка/число/дата то такой вариант не сработает, так как у разных записей в таблице не одного типа поля.
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591444
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rockefsкогда все данные можно уместить в поле text все ок, а если это файл/картинка/число/дата то такой вариант не сработает
Сериализация снимает эти проблемы. А файл/картинка - они вообще должны лежать в файловой системе, а в таблице хранится только ссылка (путь) к файлу (не забывай об ограничении на размер файла БД и то, что при его превышении БД повреждается - сразу, без предупреждения, причём необратимо и невосстановимо).
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591458
Rockefs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaСериализация снимает эти проблемы. - я так понимаю что это без VBA не устроить и обычному пользователю это будет сложно сделать.

AkinaА файл/картинка - они вообще должны лежать в файловой системе, а в таблице хранится только ссылка (путь) к файлу (не забывай об ограничении на размер файла БД и то, что при его превышении БД повреждается - сразу, без предупреждения, причём необратимо и невосстановимо). - спасибо, знания хороших практиках при проектировании бд и предугадывание возможных проблем никогда не будут лишними.
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591466
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rockefsбез VBA не устроить и обычному пользователю это будет сложно сделать.
Обычный пользователь работает через интерфейс, созданный программистом, все операции выполняет код, созданный тем же программистом, так что пользователю вообще параллельно, как и каким средствами там что-то выполняется. А уж какой-нить номер телефонный в форму и обезьяна ввести может...
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591468
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaполучить новый СНИЛС
Нельзя, СНИЛС поменяется разве что при смене пола.
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591509
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., в честь чего бы? 15 лет он отработал слесарем и 15 лет секретаршей. Общий стаж трицатка
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591560
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что контрольный разряд СНИЛС зависит от пола и при смене пола номер будет новый.
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591663
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подобная схема данных называется "звезда" и позволяет реализовать Ваши "хотелки"
См.Form1,остальные открывать с неё
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591666
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПыСы: и не обзывайте элементы управления как в примере-давайте им внятные имена
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591740
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B., свят-свят! это тебе кто такое сказал?
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591763
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eav для - маловероятноменяемых атрибутов...попробовать можно
...
Рейтинг: 0 / 0
Посоветуйте как лучше создать базу данных о людях/контактах
    #39591776
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPCAlibek B., свят-свят! это тебе кто такое сказал?
Уже не помню, но кто-то компетентный, с которым я согласовывал ТЗ на ПО.
Зафиксировал в голове с пометкой "достоверно".
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Посоветуйте как лучше создать базу данных о людях/контактах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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