Демистификация нулевых и уникальных ограничений в TypeORM: практическое руководство

В этой статье блога мы углубимся в мир ограничений null и unique в TypeORM, популярной библиотеке объектно-реляционного отображения (ORM) для Node.js и TypeScript. Мы рассмотрим различные методы установки столбцов как нулевых или уникальных, используя разговорный язык, и предоставим примеры кода для иллюстрации каждого подхода. К концу этого руководства вы получите четкое представление о том, как эффективно использовать ограничения null и unique в ваших проектах TypeORM.

  1. Настройка столбца как допускающего значение NULL:
    Чтобы установить столбец как допускающий значение NULL и разрешить ему принимать значения NULL, вы можете использовать параметр nullableпри определении столбца в классе сущности.. Давайте рассмотрим пример, где у нас есть сущность Userсо столбцом email, допускающим значение NULL:
@Entity()
class User {
  @PrimaryGeneratedColumn()
  id: number;
  @Column({ nullable: true })
  email: string;
}

Если установить nullable: true, столбец emailсможет принимать нулевые значения.

  1. Настройка столбца как уникального.
    Чтобы сделать столбец уникальным и гарантировать, что все значения в этом столбце различны, вы можете использовать параметр uniqueпри определении столбца в ваш класс сущности. Давайте изменим нашу сущность User, чтобы она имела уникальный столбец username:
@Entity()
class User {
  @PrimaryGeneratedColumn()
  id: number;
  @Column({ unique: true })
  username: string;
}

Если установить unique: true, столбец usernameбудет содержать только уникальные значения.

  1. Настройка нескольких столбцов как уникальных.
    Вы также можете сделать несколько столбцов уникальными с помощью декоратора @Unique, предоставляемого TypeORM. Давайте рассмотрим пример, где у нас есть сущность Productс уникальной комбинацией nameи category:
@Entity()
class Product {
  @PrimaryGeneratedColumn()
  id: number;
  @Column()
  name: string;
  @Column()
  category: string;
  @Unique(['name', 'category'])
  uniqueNameCategory: string;
}

Применяя декоратор @Uniqueк свойству uniqueNameCategory, мы гарантируем, что комбинация nameи categoryзначения уникальны.

В этой статье мы рассмотрели различные методы установки столбцов как нулевых или уникальных в TypeORM. Мы узнали, как использовать параметры nullableи uniqueдля определения ограничений столбцов, а также как сделать несколько столбцов уникальными с помощью декоратора @Unique.. Используя эти методы, вы можете обеспечить целостность данных и повысить эффективность ваших приложений на основе TypeORM.