Никакие браузеры не обрабатывают 301 и 302 ответа правильно. И на самом деле в стандарте даже говорится, что они должны обработать их "прозрачно", который является ОБШИРНОЙ головной болью для поставщиков Библиотеки Ajax. В Ajax Ра мы были принуждены к использованию Кода состояния ответа HTTP 278 (просто некоторый "неиспользованный" код успеха) для обработки прозрачно перенаправлений с сервера...
Это действительно раздражает меня, и если бы у кого-то здесь есть некоторое "получение по запросу" в W3C, я ценил бы, что Вы могли позволить W3C знать , что мы действительно должны обработать 301 и 302 кода сами...!;)
Просто для пояснения: таблица может иметь не более одного первичного ключа. Первичный ключ состоит из одного или нескольких столбцов (из этой таблицы). Если первичный ключ состоит из двух или более столбцов, он называется составным первичным ключом . Он определяется следующим образом:
CREATE TABLE voting (
QuestionID NUMERIC,
MemberID NUMERIC,
PRIMARY KEY (QuestionID, MemberID)
);
Пара (QuestionID, MemberID) должна быть уникальной для таблицы, и ни одно из значений не может быть NULL. Если вы выполните такой запрос:
SELECT * FROM voting WHERE QuestionID = 7
, он будет использовать индекс первичного ключа. Однако если вы сделаете это:
SELECT * FROM voting WHERE MemberID = 7
, этого не произойдет, потому что для использования составного индекса необходимо использовать все ключи, расположенные «слева». Если индекс находится в полях (A, B, C), а ваши критерии - в B и C, то этот индекс вам не нужен для этого запроса. Поэтому выберите из (QuestionID, MemberID) и (MemberID, QuestionID) в зависимости от того, как вы будете использовать таблицу.
При необходимости, добавьте индекс на другой:
CREATE UNIQUE INDEX idx1 ON voting (MemberID, QuestionID);
CREATE TABLE `voting` (
`QuestionID` int(10) unsigned NOT NULL,
`MemberId` int(10) unsigned NOT NULL,
`vote` int(10) unsigned NOT NULL,
PRIMARY KEY (`QuestionID`,`MemberId`)
);