digital-garden/dev/database/Индекс в БД для мягкого удаления.md

2.0 KiB
Raw Blame History

aliases tags date
maturity/🌱
best-practices
2024-11-05

Представьте, что вам нужно поддерживать уникальность данных, например, адресов электронной почты в таблице базы данных. Однако в таблице есть строки, ../Tombstone с помощью поля deleted_at, и они также остаются в базе данных. В такой ситуации создание уникального индекса на поле с электронной почтой становится невозможным из-за дублирующихся значений. Частичный индекс решает эту проблему, позволяя включать в индекс только записи, которые не помечены как удаленные.

В PostgreSQL добавление уникального индекса для активных пользователей выглядит так:

CREATE UNIQUE INDEX users_email_uniq ON users (
  email
) WHERE deleted_at IS NULL;

В этом случае строки, у которых deleted_at не задан, включаются в индекс, а остальные игнорируются, что делает индекс более компактным и эффективным.


Мета информация

Область:: ../../meta/zero/00 Реляционная база данных Родитель:: Источник:: Создана:: 2024-11-05 Автор::

Дополнительные материалы

Дочерние заметки