טוב, אז זה הקוד החדש:
מציאת מודעות:
$sqlNew = "SELECT a.*
FROM appartments a
WHERE $where
AND a.created_at >= ?
AND NOT EXISTS (
SELECT 1
FROM apartment_reads ar
WHERE ar.apartment_id = a.id
AND ar.phone = ?
)
ORDER BY a.created_at DESC";
$sqlOld = "SELECT a.*
FROM appartments a
WHERE $where
AND (
a.created_at < ?
OR EXISTS (
SELECT 1
FROM apartment_reads ar
WHERE ar.apartment_id = a.id
AND ar.phone = ?
)
)
ORDER BY a.created_at DESC";
סימון כנקראה:
$sql = "INSERT INTO apartment_reads (apartment_id, phone)
VALUES (?, ?)";
בעצם הפעולות שאני עושה הן רק במציאת המודעות ובסימון כנקרא, נכון?
ברגע שאני מוחק את המודעה, נמחק גם מה שקשור אליה בטבלה (
FOREIGN KEY (apartment_id) REFERENCES appartments(id) ON DELETE CASCADE
),
וכשאני מוסיף או מוחק סינון אני לא צריך לבצע שום פעולה.