Я создал веб-приложение с php и базой данных mysql. Пользователи могут предлагать идеи или делать запросы, а администраторы сайта могут это проверить. Если все менеджеры подтвердили запрос, он принят.
У меня есть 4 таблицы в моей базе данных, одна для пользователей, одна для пользовательских запросов, одна для менеджеров и одна для потока проверок менеджера.
User
______
Id PK
Name
...
User_s_request
______________
Id PK
User_id
Request
Manager
_________
User_id PK
Manager_s_validation
____________________
User_request_id PK
Manager_id PK
Validation_date
Когда менеджер переходит на страницу проверки, я отображаю HTML-таблицу, показывающую запросы пользователя, которые все еще нуждаются в проверке этого менеджера.
SELECT ur.id from user_request AS ur
JOIN manager_validation AS mv ON mv.user_request_id = ur.id
JOIN manager AS m ON m.user_id = mv.manager_id
WHERE mv.manager_id != $manager_id OR mv.user_request_id IS NULL
LIMIT 1
Мой запрос работает, когда этот менеджер еще не подтвержден. Запрос отображается. Мой запрос работает, когда единственная проверка от этого менеджера.
Но это не работает, если этот менеджер и еще один (или более) проверены. Запрос отображается, когда его не должно быть.
Как может быть правильный запрос?