За последние 24 часа нас посетили 17495 программистов и 1720 роботов. Сейчас ищут 1565 программистов ...

Уникальные поля

Тема в разделе "PHP и базы данных", создана пользователем Lesya, 28 авг 2006.

  1. Lesya

    Lesya Активный пользователь

    С нами с:
    14 авг 2006
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Запорожье
    Задача: создать таблицу с тремя столбцами - TovarName, TovarID и ProizvoditelID. Как первичный ключ используется поле TovarID.

    Подскажите пожалуйста как сделать так, чтобы при добавлении записей в таблицу:
    1) можно было добавлять несколько записей с одинаковым полем TovarName, если производители разные;
    2) можно было добавлять несколько записей с одинаковым полем ProizvoditelID, если товары разные;
    3) нельзя было добавлять несколько записей с одинаковыми полями TovarName и ProizvoditelID.

    Можно ли ограничить ввод подобных полей при создании таблицы или надо посылать запрос нет ли уже такого товара у такого производителя, или как?

    БД в данном случае MySQL.
     
  2. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. CREATE TABLE products (
    2. TovarID int unsigned not null auto_increment,
    3. TovarName varchar(255) not null,
    4. ProizvoditelID tinyint unsigned not null,
    5. PRIMARY KEY (TovarID),
    6. UNIQUE KEY uniq_product (ProizvoditelID,TovarName)
    7. );
    может так?
     
  3. Lesya

    Lesya Активный пользователь

    С нами с:
    14 авг 2006
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Запорожье
    Да, не смотря на то, что в моей книге этот момент не описан, все работает так как надо.
    Спасибо.
    А uniq_product можно как-то использовать? Честно говоря мне не совсем понятно значение этого идентификатора. Если бы я не знала синтаксиса языка, я бы написала так:
    Код (Text):
    1. UNIQUE KEY (ProizvoditelID,TovarName)