|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Посоветуйте как лучше создать базу данных о людях/контактах (фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.), с возможностью отслеживания смены адреса проживания, смены фамилии, то есть чтобы можно было узнать, например, по какому адресу проживал человек два года назад, какая фамилия у него тогда была + тот факт, что некоторые типы информации могут быть и по несколько (например, номера телефонов). Кроме создания по таблице для каждого поля с информацией о человеке с указанием даты создания записи и сроком действия этой информации + поле yes/no для указания актуальности записи, какие еще есть варианты? На сколько правильный мой подход? Базу думаю создать в Access. Заранее спасибо всем, кто не прошел мимо. Схема Persons - ID - Birthday - … PersonName - ID - Name - StartDate - EndDate - Relevance (yes/no) Person* - ID - * - StartDate - EndDate - Relevance (yes/no) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 00:08 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 04:21 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Просмотрите шаблоны и примеры, там много чего интересного. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 04:24 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
simply, авторПросмотрите шаблоны и примеры, там много чего интересного. - Спасибо, но там нет структуры которая бы отвечала моим требованиям. автор"с возможностью отслеживания смены адреса проживания, смены фамилии, то есть чтобы можно было узнать, например, по какому адресу проживал человек два года назад, какая фамилия у него тогда была + тот факт, что некоторые типы информации могут быть и по несколько (например, номера телефонов). " - Этого нет в представленном шаблоне, а такой функционал для меня важен. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 08:53 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Rockefs(фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.) я бы возможно завела 2 таблицы таб1 -текущая(код1,фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д. таб2 -архив(код,бкод1,дата, реквизит,значение) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 09:00 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Rockefssimply, авторПросмотрите шаблоны и примеры, там много чего интересного. - Спасибо, но там нет структуры которая бы отвечала моим требованиям. автор"с возможностью отслеживания смены адреса проживания, смены фамилии, то есть чтобы можно было узнать, например, по какому адресу проживал человек два года назад, какая фамилия у него тогда была + тот факт, что некоторые типы информации могут быть и по несколько (например, номера телефонов). " - Этого нет в представленном шаблоне, а такой функционал для меня важен. Тогда зачем спрашивать если у вас свое виденье? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 09:11 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Проблема в том, что у человека формально может измениться в принципе любой атрибут. Можно сменить имя и фамилию, получить новый СНИЛС, даже можно изменить учётную дату рождения... Посему предлагаю использовать две базовые таблицы с наворотами. Первая - таблица Люди, куда включены обязательно присутствующие формально постоянные (редко изменяющиеся) атрибуты. К таковым отношу: ФИО, дата и место рождения, основные учётные номера (ИНН и СНИЛС). Если происходит изменение ЭТИХ атрибутов - то для этого человека вводится ещё одна запись. А для отслеживания в структуру вводится дополнительное поле. Если это актуальные данные - в нём Null, если же данные изменились, и имеется другая, актуальная, запись, то в этом поле находится идентификатор актуальной записи. Возможно, это будет не одна таблица, а набор таблиц (например, сведения о паспортах я бы вынес в отдельную таблицу), но сути это не меняет. Вторая - таблица Контакты. Там соответственно хранятся именно контакты (возможно, в сериализованной форме). Таблица связана с таблицей Люди соотношением много-к-одному, а также имеет дополнительное поле валидности записи (контакт, потерявший актуальность, не удаляется, а помечается как невалидный). Поскольку удаление записей в принципе не предусматривается, надобность в архиве отпадает. Если есть опасность некорректной работы - можно дополнительно ввести таблицу журналирования изменений, а также дополнительные таблицы, которые за счёт переопределения позволяют вести контроль корректности связей. Ну и соответственно процедуры контроля целостности и восстановления минорных несоответствий. Такая структура создаёт, конечно, определённые сложности по получению актуальной информации (из-за неограниченности количества изменений и, соответственно, длины цепи от поискового атрибута до актуальной записи - а Access не поддерживает рекурсивных CTE), придётся получение делать на основе VBA-процедур (и, возможно, временных таблиц). Упростить процесс можно за счёт ещё одного переопределения - дополнительной таблицы (запись - актуальная запись). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 09:21 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
FochaТогда зачем спрашивать если у вас свое виденье? - А Вы какой вариант предложите?! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 09:21 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАRockefs(фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д.) я бы возможно завела 2 таблицы таб1 -текущая(код1,фамилия, имя, отчество, адрес, телефоны, адреса электронной почты, дата рождения и т.д. таб2 -архив(код,бкод1,дата, реквизит,значение) - Да, такой вариант я рассматривал, но проблема в тоом что "Реквизит/Тип информации" может быть разным, когда все данные можно уместить в поле text все ок, а если это файл/картинка/число/дата то такой вариант не сработает, так как у разных записей в таблице не одного типа поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 09:27 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Rockefsкогда все данные можно уместить в поле text все ок, а если это файл/картинка/число/дата то такой вариант не сработает Сериализация снимает эти проблемы. А файл/картинка - они вообще должны лежать в файловой системе, а в таблице хранится только ссылка (путь) к файлу (не забывай об ограничении на размер файла БД и то, что при его превышении БД повреждается - сразу, без предупреждения, причём необратимо и невосстановимо). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 09:33 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
AkinaСериализация снимает эти проблемы. - я так понимаю что это без VBA не устроить и обычному пользователю это будет сложно сделать. AkinaА файл/картинка - они вообще должны лежать в файловой системе, а в таблице хранится только ссылка (путь) к файлу (не забывай об ограничении на размер файла БД и то, что при его превышении БД повреждается - сразу, без предупреждения, причём необратимо и невосстановимо). - спасибо, знания хороших практиках при проектировании бд и предугадывание возможных проблем никогда не будут лишними. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 10:10 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Rockefsбез VBA не устроить и обычному пользователю это будет сложно сделать. Обычный пользователь работает через интерфейс, созданный программистом, все операции выполняет код, созданный тем же программистом, так что пользователю вообще параллельно, как и каким средствами там что-то выполняется. А уж какой-нить номер телефонный в форму и обезьяна ввести может... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 10:19 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Akinaполучить новый СНИЛС Нельзя, СНИЛС поменяется разве что при смене пола. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 10:28 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Alibek B., в честь чего бы? 15 лет он отработал слесарем и 15 лет секретаршей. Общий стаж трицатка ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 11:44 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Потому что контрольный разряд СНИЛС зависит от пола и при смене пола номер будет новый. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 12:40 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Подобная схема данных называется "звезда" и позволяет реализовать Ваши "хотелки" См.Form1,остальные открывать с неё ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 14:08 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
ПыСы: и не обзывайте элементы управления как в примере-давайте им внятные имена ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 14:11 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
Alibek B., свят-свят! это тебе кто такое сказал? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 15:11 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
eav для - маловероятноменяемых атрибутов...попробовать можно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 15:51 |
|
Посоветуйте как лучше создать базу данных о людях/контактах
|
|||
---|---|---|---|
#18+
LocksmithPCAlibek B., свят-свят! это тебе кто такое сказал? Уже не помню, но кто-то компетентный, с которым я согласовывал ТЗ на ПО. Зафиксировал в голове с пометкой "достоверно". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2018, 16:06 |
|
|
start [/forum/topic.php?fid=45&msg=39591438&tid=1611766]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 419ms |
0 / 0 |