powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Миграция ключей
22 сообщений из 22, страница 1 из 1
Миграция ключей
    #34228762
schauma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день или вечер (За окном темно).
Помогите, пожалуйста.
Есть три таблицы В каждой составной ключ. ПРичем атрибуты этого ключа сами по себе не уникальны(id, eff_start_date, eff_end_date), а уникален только сам составной ключ.
Как сделать так чтобы при миграции в дочернюю таблицу мигрировал только id
...
Рейтинг: 0 / 0
Миграция ключей
    #34228841
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что ж в ней дочернего, если она не включает ключ родителя?
Просто перетащите атрибут не создавая ER-связи.
...
Рейтинг: 0 / 0
Миграция ключей
    #34228908
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> В каждой составной ключ

Меняйте дизайн. Это плохое решение.
...
Рейтинг: 0 / 0
Миграция ключей
    #34229625
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> В каждой составной ключ

Меняйте дизайн. Это плохое решение.А может и нормальное. Судя по названиям полей это что-то темпоральное / журнальное. Возможно, "дочерняя" таблица логически связана с данной условием на даты (например дата дочки должна попадать в диапазон дат родителя) и введение суррогата ничем не помогает - процедурный контроль диапазонов остается.
...
Рейтинг: 0 / 0
Миграция ключей
    #34229715
schauma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыла для наглядности картинку приложить
...
Рейтинг: 0 / 0
Миграция ключей
    #34229881
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищите про темпоральные (исторические) базы данных.
На поверхности:
1)Имена лучше давать в одном стиле - раз адрес и контакт, то человек а не люди.
2)Факт существования объекта и его история - разные сущности.
Историю можно фиксировать как журнал событий, изменящих данные, или как статусы за период.
People -> Pesron(неизменеямые со временем данные) + PersonStatus(изменяемые).
3)Для PersonStatus логично иметь в ключе дату начала, но не дату окончания периода, иначе сам ключ уже допускает два периода, начинающиеся с одной даты.

Далее, связи между темпоральными сущностями могут быть постронеы по-разному:
должна ли скажем история адреса быть синхронизирована с PersonStatus или она независима от него и родителем для нее является Person?
...
Рейтинг: 0 / 0
Миграция ключей
    #34230083
schauma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRПоищите про темпоральные (исторические) базы данных.
На поверхности:
1)Имена лучше давать в одном стиле - раз адрес и контакт, то человек а не люди.
2)Факт существования объекта и его история - разные сущности.
Историю можно фиксировать как журнал событий, изменящих данные, или как статусы за период.
People -> Pesron(неизменеямые со временем данные) + PersonStatus(изменяемые).
3)Для PersonStatus логично иметь в ключе дату начала, но не дату окончания периода, иначе сам ключ уже допускает два периода, начинающиеся с одной даты.

Далее, связи между темпоральными сущностями могут быть постронеы по-разному:
должна ли скажем история адреса быть синхронизирована с PersonStatus или она независима от него и родителем для нее является Person?

Замечания приняла. По поводу состава таблицы
набазу новую запись " 123-Иванова Ирина Владимировна - 01.01.06 - (здесь пишится максимальаня дата)".
Затем девушка выходит замуж и меняет фамилию ,и для того чтобы не заводить новый ID Делаем так "123 - Иванова Ирина Владимировна - 01.01.06 - 30.05.06"
создается новая запись
"123 - Петрова Ирина Владимировна - 30.05.06 - (и опять же макс. дата)"
А в адресе и контакте нужен только ID для внешнего ключа
...
Рейтинг: 0 / 0
Миграция ключей
    #34230339
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> А может и нормальное.

Очень сильно вряд ли. Я не могу придумать структуры, для которой составной ключ мог бы быть единственно правильным решением.
...
Рейтинг: 0 / 0
Миграция ключей
    #34230354
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> По поводу состава таблицы

Кривовато Вы задачу решили. Подумайте о декомпозиции.
...
Рейтинг: 0 / 0
Миграция ключей
    #34230862
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> А может и нормальное.

Очень сильно вряд ли. Я не могу придумать структуры, для которой составной ключ мог бы быть единственно правильным решением.А у меня вызывают подозрения структуры, где в каждой таблице единственное ограничение уникальности ID <тип> Pimary key.
...
Рейтинг: 0 / 0
Миграция ключей
    #34230987
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> А у меня вызывают подозрения структуры, где в каждой таблице единственное ограничение
> уникальности ID <тип> Pimary key.

Это стандартная, удобная, переносимая, однозначная идентификация. Должны быть очень веские причины, чтобы отказаться от такой схемы. Я таких причин не знаю; более того, их наличие склонен рассматривать как кривые руки архитектора.
...
Рейтинг: 0 / 0
Миграция ключей
    #34231072
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 guest_20040621 Вы обратили внимание на слово единственное?
...
Рейтинг: 0 / 0
Миграция ключей
    #34231138
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRА у меня вызывают подозрения структуры, где в каждой таблице единственное ограничение уникальности ID <тип> Pimary key.
А что еще м.б. Pimary key ? ИНН, ФИО, паспорт, номер документа ? Все это не надежно, а потому неверно.
...
Рейтинг: 0 / 0
Миграция ключей
    #34231166
schauma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня единственный вопрос, есть ли такая функция которая отключает мигрирование всех атрибутов (мне нужно чтобы мигрировал только ID)
...
Рейтинг: 0 / 0
Миграция ключей
    #34231217
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вы обратили внимание на слово единственное?

;) Да. Фишка imho в том, что стандартный primary key - "архитектурная" гарантия уникальности, прочие ограничения уникальности - структурные, логические; т. е. я бы их не рассматривал на том же уровне, что и первичные ключи. Впрочем, это нюансы; формально возражений нет.
...
Рейтинг: 0 / 0
Миграция ключей
    #34231372
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schaumaУ меня единственный вопрос, есть ли такая функция которая отключает мигрирование всех атрибутов (мне нужно чтобы мигрировал только ID)Нет
...
Рейтинг: 0 / 0
Миграция ключей
    #34231380
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модА что еще м.б. Pimary key ? ИНН, ФИО, паспорт, номер документа ? Все это не надежно, а потому неверно.Кто сказал Pimary ? уникальный. Для Person действительно ничего. А для PersonStatus пара (PersonId,StartDate) обязана быть уникальной. Вне завизимости, создан ли Primary PersonStatusId.
...
Рейтинг: 0 / 0
Миграция ключей
    #34231735
schaumaДобрый день или вечер (За окном темно).
Помогите, пожалуйста.
Есть три таблицы В каждой составной ключ. ПРичем атрибуты этого ключа сами по себе не уникальны(id, eff_start_date, eff_end_date), а уникален только сам составной ключ.
Как сделать так чтобы при миграции в дочернюю таблицу мигрировал только id
Если есть уникальный id, зачем тогда в первичном ключе остальные атрибуты? Если id не уникален, тогда зачем он там? Если же id не уникален?!, тогда нельзя его использоват в качестве форин кея в другой таблице..
...
Рейтинг: 0 / 0
Миграция ключей
    #34232047
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR А для PersonStatus пара (PersonId,StartDate) обязана быть уникальной.
А вот это интересный вопрос. PersonStatus можно трактовать как факт изменения статуса, тогда этот факт должен иметь собственный ID, не зависящий от StartDate. А контроль уникальности (PersonId,StartDate) - это дополнительная фича - может быть, а может и не быть.
...
Рейтинг: 0 / 0
Миграция ключей
    #34232155
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод ModelR А для PersonStatus пара (PersonId,StartDate) обязана быть уникальной.
А вот это интересный вопрос. PersonStatus можно трактовать как факт изменения статуса, тогда этот факт должен иметь собственный ID, не зависящий от StartDate. Приведен был именно вариант статуса, не журнала событий (было бы PersonEvent):
авторИсторию можно фиксировать как журнал событий, изменящих данные, или как статусы за период.
People -> Pesron(неизменеямые со временем данные) + PersonStatus(изменяемые).А почему факт должен иметь собственный ID? Может, это 100% терминал и ссылок на него не бывает. модА контроль уникальности (PersonId,StartDate) - это дополнительная фича - может быть, а может и не быть.В контексте задачи ИМХО разные фамилии на одну дату - нонсенс. Хранение нонсенса как фича?
...
Рейтинг: 0 / 0
Миграция ключей
    #34232189
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRА почему факт должен иметь собственный ID? Может, это 100% терминал и ссылок на него не бывает.
Собственно это и есть самое интересное. Я для себя взял за правило: всегда заводить ID в любой таблице. Как показала практика, ссылки рано или поздно, но появляются. Так зачем думать там где думать вредно - действуй по шаблону и все будет нормально.
...
Рейтинг: 0 / 0
Миграция ключей
    #34232847
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен.
Наверно, большинство (я тоже) следует этому правилу.
Но есть еще одно - декларировать уникальность естественных ключей, если таковые имеются.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Миграция ключей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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