Проектирование таблиц для хранения личных данных в Oracle и Postgres
Допустим, у нас есть таблица Персона с полями Имя, год рождения, пол, а также номер паспорта, номер водительских прав, адрес, место работы и др.
При проектировании в PostgreSQL уместно разбить эту таблицу на две из-за особенности реализации MVCC, например, создать таблицу Person_main
с полями Имя, год рождения, пол, номер паспорта, номер водительских прав. А в Person_add
положить адрес, место работы и другие поля, которые часто могут меняться.
В Oracle видел такие же решения с разбиением таблиц. Какие плюсы от такого решения в Oracle?
Ответы (1 шт):
Автор решения: Ilnarildarovuch
→ Ссылка
- Снижение блокировок: В Oracle используется механизм блокировок для обеспечения целостности данных. Если часто изменяются только некоторые поля (например, адрес или место работы), то разбиение таблицы может снизить количество блокировок, так как изменения в одной таблице не будут блокировать доступ к другой.
- Упрощение управления данными: Разделение данных на логические группы может упростить управление ими. Например, если адреса и места работы часто обновляются, их можно легко обрабатывать отдельно от более статичных данных.
- Оптимизация хранения: В зависимости от типа данных и их использования, можно применять разные механизмы хранения для разных таблиц. Например, можно использовать разные параметры хранения для таблицы с часто изменяемыми данными и для таблицы с редко изменяемыми.
- Упрощение миграции и архивирования: Если данные в одной из таблиц становятся устаревшими или их нужно архивировать, это можно сделать более удобно, не затрагивая другие данные.
- Безопасность и доступ: Разделение таблиц может позволить более гибко управлять правами доступа. Например, можно ограничить доступ к таблице с чувствительными данными (адресами и местами работы), оставив доступ к основной информации.
- Упрощение индексации: Если в одной из таблиц много индексов, это может замедлить операции вставки и обновления. Разделение таблиц может позволить оптимизировать индексацию для каждой из них.