Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: 2 первичных ключа

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
jonston
Отправлено: 21 Августа, 2013 - 15:06:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




Здравствуйте!Увидел в одной cms таблицу с 2 первичными ключами.Таблица с отношением many to many.Попытался сделать подобную xthtp phpmyadmin пишет что типа нельзя 2 primary key.Проясните ситуацию пожалуйста.Как и зачем создатели cms это сделали?И что нужно использовать в качестве ключей в данной ситуации?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 21 Августа, 2013 - 15:20:53
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




jonston
Два первичных ключа быть не может по определению (собственно, ключ потому и первичный, что он является необходимым и достаточным условием для идентификации записи).

Первичный ключ может быть создан по нескольким колонкам, но сама сущность - ключ - всё равно будет одна.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
eai
Отправлено: 21 Августа, 2013 - 15:22:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Вообще первичный ключ один, вторым логическим ключем может быть поле с уникальным индексом. Первичный ключ служит для поддержки целостности.
 
 Top
jonston
Отправлено: 21 Августа, 2013 - 16:03:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




EuGen пишет:
jonston
Два первичных ключа быть не может по определению (собственно, ключ потому и первичный, что он является необходимым и достаточным условием для идентификации записи).

Первичный ключ может быть создан по нескольким колонкам, но сама сущность - ключ - всё равно будет одна.

Нужно использовать внешний ключ, индекс, уникальный ключ?И еще будут ли автоматически проставлены индексы если проставить связи?

(Отредактировано автором: 22 Августа, 2013 - 03:25:32)



-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 21 Августа, 2013 - 16:29:24
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




jonston пишет:
Нужно использовать внешний ключ, индекс, уникальный ключ?

Уточните, что значит - "нужно"? Ответ зависит от того, какой атрибут хранит поле и какая логика накладывается на это поле. Если требуется, чтобы значение было уникальным - то - да, нужно создать уникальный ключ по этому полю. Если поле является ссылкой на запись в другой таблице - то создать внешний ключ.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
jonston
Отправлено: 21 Августа, 2013 - 17:00:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




EuGen пишет:
jonston пишет:
Нужно использовать внешний ключ, индекс, уникальный ключ?

Уточните, что значит - "нужно"? Ответ зависит от того, какой атрибут хранит поле и какая логика накладывается на это поле. Если требуется, чтобы значение было уникальным - то - да, нужно создать уникальный ключ по этому полю. Если поле является ссылкой на запись в другой таблице - то создать внешний ключ.

Внешний ключ == пространственный индекс?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 21 Августа, 2013 - 17:05:06
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




jonston пишет:
пространственный индекс?

Внешний ключ - означает, что значение поля есть ссылка на запись в другой таблице. Иными словами, он является значением ключа в другой таблице, и, таким образом, по его значению можно восстановить запись в той таблице, на которую он ссылается. Подробнее - смотрите данную статью.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
jonston
Отправлено: 21 Августа, 2013 - 19:55:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




EuGen пишет:
jonston пишет:
пространственный индекс?

Внешний ключ - означает, что значение поля есть ссылка на запись в другой таблице. Иными словами, он является значением ключа в другой таблице, и, таким образом, по его значению можно восстановить запись в той таблице, на которую он ссылается. Подробнее - смотрите данную статью.

спасибо.То есть если таблица служит для связки двух полей, по это внешний ключ.Это я знаю.Но как он обозначается в phpMyAdmin?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 21 Августа, 2013 - 21:41:07
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




В pma для того нужно перейти на вкладку "Структура", затем выбрать пункт "Связи"


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
jonston
Отправлено: 22 Августа, 2013 - 03:21:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




EuGen пишет:
В pma для того нужно перейти на вкладку "Структура", затем выбрать пункт "Связи"

Еще раз благодарю!А можно ли удалить первичный ключ без применения sql запроса?То есть через pma?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 22 Августа, 2013 - 09:02:33
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Можно через GUI. Напротив ключа должна быть картинка удаления. Но в конечном итоге pma всё так же сделает это через запрос.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB