Яка найкраща практика зберігання метаданих окремих записів у базі даних?
Мені потрібно зберігати загальні метадані, такі як час створення та час останнього оновлення для багатьох таблиць у моїй базі даних. Я знайшов кілька різних рішень:
Зберігайте метадані безпосередньо в таблицях.
Плюси:
- Метадані безпосередньо пов'язані із записами
- Для отримання метаданих не потрібно ніяких приєднань
Мінуси:
- Потрібно багато повторюваних стовпців (якщо не використовується спадщина)
- Метадані та бізнес-дані не відокремлюються
Створіть загальну таблицю метаданих та використовуйте м'які зовнішні клавіші для прив’язки даних до правильних таблиць та записів.
Плюси:
- Немає дублювання стовпців
- Метадані відокремлені від бізнес-даних
Мінуси:
- Немає прямих зв’язків між метаданими та даними (FK не можна використовувати)
- Приєднання вимагає додаткової умови
Створіть окремі таблиці метаданих для кожної таблиці, що вимагає метаданих.
Плюси:
- Метадані безпосередньо пов'язані із записами
- Метадані відокремлені від бізнес-даних
Мінуси:
- Потрібно багато додаткових таблиць
- Потрібно багато повторюваних стовпців (якщо не використовується спадщина)
Чи є більше варіантів, плюсів чи мінусів, ніж ті, про які я згадував тут? І яка найкраща практика зберігання цих метаданих?
hstore
абоJSON
стовпця може вирішити вашу проблему?