Назад к вопросам
Junior
67
questionbank

Как сохранить уникальную информацию для каждого элемента в реляционной таблице?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В реляционной базе данных уникальность записи в таблице определяется первичным ключом. Каждая строка должна иметь уникальное значение в колонке (или наборе колонок), designated as the primary key. Это гарантирует, что вы сможете однозначно идентифицировать каждую запись.

Вот несколько способов обеспечения уникальности:

  1. Автоинкрементный первичный ключ: Самый распространенный подход. Создается целочисленное поле, которое автоматически увеличивается для каждой новой записи.

    CREATE TABLE users (
        id INTEGER PRIMARY KEY AUTOINCREMENT, // Уникальный автогенерируемый ID
        username TEXT,
        email TEXT UNIQUE // Дополнительная уникальность для email
    );
    
  2. UUID (Universally Unique Identifier): Если нужно генерировать уникальные идентификаторы на клиенте или распределенно, можно использовать UUID.

    CREATE TABLE products (
        id TEXT PRIMARY KEY, // Уникальный UUID в текстовом формате
        name TEXT,
        price REAL
    );
    
  3. Естественный ключ: Если уникальность гарантируется одним или несколькими существующими полями данных.

    CREATE TABLE Countries (
        iso_code TEXT PRIMARY KEY, // Код страны уникален в мире
        name TEXT
    );
    
  4. Составной ключ: Комбинация нескольких колонок для обеспечения уникальности записи.

    CREATE TABLE OrderItems (
        order_id INTEGER,
        product_id INTEGER,
        quantity INTEGER,
        PRIMARY KEY (order_id, product_id) // Уникальность пары order_id + product_id
    );
    

Выбор метода зависит от требований к идентификации данных. Главное — наличие первичного ключа.