Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
29.07.2016, 10:14
|
|||
---|---|---|---|
Логическая организация таблиц |
|||
#18+
Здравствуйте. Помогите, пожалуйста, советом по логической организации таблиц! У меня есть 3 таблицы: «Физлица», «Юрлица», «Территории». Мне надо организовать в базе учет переименований. К примеру, физлицо сначала было «Петро-ва Мария Ивановна», а в результате замужества стало «Иванова Мария Ивановна». Или юрлицо сначала было «ООО Чибис», а потом стало «ООО Чибис+». Или территория сначала была «Куйбышевская область», а потом стала «Самарская область». Мне надо, чтобы в базе сохранялись оба наименования. Я сделала так: В таблицах «Физлица», «Юрлица», «Территории» есть только id. И есть 4-я таблица «Наимено-вания». В ней поля «idНаименования», «ВидОбъекта», «idОбъекта» и «Наименование». По поле «ВидОбъекта» три возможных значения: «Физлицо», «Юрлицо», «Территория». В поде «idОбъекта» - id или физлица, или юрлица или территории. В поле наименование – наименова-ние, в оной записи оно новое, в другой записи – старое. Например: idНаименования___ВидОбъекта___idОбъекта_____Наименование 1________________Физлицо_______27___________Петрова Мария Ивановна 2________________Физлицо_______27___________Иванова Мария Ивановна Правильно ли я сделала? Возможно, можно как-то по-другому, лучше? Посоветуйте, пожалуй-ста! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2016, 15:49
|
|||
---|---|---|---|
Логическая организация таблиц |
|||
#18+
Ну... а где история-то? Как опоеделить, какое из названий было месяц назад? Дополни структуру полями начала и окончания срока действия. Актуальное определяется по Null в поле окончания ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2016, 15:53
|
|||
---|---|---|---|
Логическая организация таблиц |
|||
#18+
Akina, да, я так и сделала. :) Ввела в 4-й таблице «Наименования» поля ДатаНачала, ДатаОкончания. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2016, 16:10
|
|||
---|---|---|---|
Логическая организация таблиц |
|||
#18+
Намучаетесь вы с такой структурой. Ввод-редактирование наименований будет неривиальным, а отчеты придется городить с дополнительными связями и вычислениями, какое название действует сейчас/на определенную дату. Это оправдано, если вам постоянно нужно отображать не актуальное название, а название на дату операции. Обычно такое требуется не часто, в основном финансовые документы нуждаются в актуальном, текущем названии, а что там было раньше - это уже дополнительная информация. Если это так, то я бы сделал по-другому. В таблицай лиц я бы хранил актуальное название, а при редактировании сохранял бы старое название в таблицу истории аналогичной вашей «Наименования» ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2016, 10:24
|
|||
---|---|---|---|
Логическая организация таблиц |
|||
#18+
MrShin, да, хлопот со структурой оказалось много. Попробую еще Ваш вариант. Понимаете, все эти наименования мне нужны, чтобы их указывать в таблице "Документы" и "Адреса" и других. В таблице "Документы" в поле "Лицо, подписавшее документ" может подписывать Иванова, но когда она еще была не Ивановой, а Петровой. Или в таблице "Адреса" поле "Место рождения" может быть у одних "г.Тольятти Куйбышевской области", а у других "г.Тольятти Самарской области". Но по сути-то это один и тот же город, только область переименовывалась! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.08.2016, 09:40
|
|||
---|---|---|---|
Логическая организация таблиц |
|||
#18+
Я немного подправила структуру. Убрала из таблицы "Наименования" поля "ВидОбъекта", "idОбъекта". Добавила поля id_физлица, id_юрлица, id_территории. Потом таблицы "Физлица", "Юрлица" и "Территории" связала каждую с таблицей "Наименования": Таблица Физлица __________ Таблица Наименования id_физлица__________________id_физлица id_юрлица __________________ id_юрлица id_территории ________________id_территории Так оказалось лучше, так как теперь возможно каскадное удаление записей. Плюс формы легче организовать для таблиц, которые связаны друг с другом, чем для несвязанных. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1613277]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 327ms |
total: | 451ms |
0 / 0 |