Есть два столбца, как сделать уникальные пары?

Gigahard

Guest
Есть два столбца, как сделать уникальные пары?

Каждый элемент первого столбца, относится к нескольким элементам второго столбца. Таблица имеет следующий вид:
Код:
+-------------------+------------------+
|    1 столбец      |     2 столбец    |
+-------------------+------------------+
|       1           |          a       |
+-------------------+------------------+
|       1           |          b       |
+-------------------+------------------+
|       1           |          c       |
+-------------------+------------------+
|       2           |          d       |
+-------------------+------------------+
|       2           |          a       |
+-------------------+------------------+
Как сделать так, чтоб пары были уникальными? Чтоб при вводе, случайно не появилась еще одна пара 2-d. Замечу, что значения второго столбца не являются уникальными.
 

Gigahard

Guest
Shadow(MX)
Ну посмотри на схему. Порядок 1 1 1 2 2 можно назвать уникальным?

Интересует именно уникальность пар. И желательно, средствами самой таблицы, т.е. не отслеживать уникальность програмно.

Miky
Мне нужна уникальность не при выводе данных, а при вводе.
 

Gigahard

Guest
Shadow(MX)

Так проверяй на совпадение при записи в базу.
Ну это я и сам догадался...

Уже писал выше: "желательно, средствами самой таблицы, т.е. не отслеживать уникальность програмно".

Цель: уменьшение запросов к БД. Защита "от дурака".

Кром
Спасибо. Кстати, а чем различаются Unique и Primary key(просто в двух словах, без ссылки на мануал)?
Пременим ли Primary key в данном случае?
 

Кром

Новичок
primary - для связей между таблицами, unique для уникальных данных. Подробности в мануале.
 

.des.

Поставил пиво кому надо ;-)
UNIQUE позволяет иметь сколько угодно записей со значением NULL. (Если конечно он явно не объвлен как NOT NULL)
 

Gigahard

Guest
Интересно, проиндексировал оба столба как Unique, а Mysql выдает их оба как primary.
Пишу describe table_name, а в колонке key, для обоих столбцов стоит PRI, а не UNI. Хотя все работает нормально.
 
Сверху