отключение более одного «лайка» на пост - PullRequest
1 голос
/ 12 февраля 2011

Я занимаюсь разработкой веб-приложения для размещения вопросов на PHP.

Когда вы входите в систему, вы можете нажать на конкретный вопрос, после чего открывается новая страница, и есть возможность , например, для этого конкретного вопроса. Каждый «лайк» увеличивает рейтинг поля в таблице «вопросы»

Теперь я хочу включить только один лайк для каждого пользователя. КАК ЭТО СДЕЛАНО? : /

Это мои таблицы.

Вопросы:

qID int(3)           
qTitle  varchar(200)             
userID  int(2)          users -> userID (foreign key)    
qBody   text                 
rating  int(2)

ПОЛЬЗОВАТЕЛИ

userID  int(2)  (PRIMARY KEY)        
username    varchar(40)          
fname   varchar(40)          
lname   varchar(40)          
password    varchar(40)          
email   varchar(50)

Ответы [ 2 ]

4 голосов
/ 12 февраля 2011

Вам потребуется таблица с записями userID и qID с уникальным ограничением на 2 столбца (через составной первичный ключ).

Вы можете сохранить столбец и приращение rating после успешной вставки в эту таблицу (возможно, с помощью триггера) в качестве денормализованного поля по соображениям производительности.

3 голосов
/ 12 февраля 2011

Используйте третью таблицу:

НРАВИТСЯ

userID  int(2)
qID int(2)

Когда вопрос «Мне нравится», добавьте строку в эту таблицу. Прежде чем разрешить «нравится», сначала проверьте, что в этой таблице нет подходящей строки.

...