У меня есть информация о диапазоне, хранящаяся в базе данных как min_age и max_age, например:
id min_age max_age 1 10 14 2 15 16 3 17 20
Я хочу сделать некоторую проверку с помощью PHP (или MySql), чтобы перед созданием другой записи мы удостоверились, что диапазон не перекрывается с существующим диапазоном. Таким образом, id = 4, min_age = 21, max_age = 25 будет хорошо, но id = 4, min_age = 20, max_age = 25 не удастся. Мой (psuedo) код, таким образом:
$age['min'] = $x; $age['max'] = $y; $current ranges = db_query('SELECT min_age, max_age FROM age_table')->fetchAll(); foreach ($age as $limit) { for ($i = 0; $i < count($current_ranges); $i++) { if ($limit >= $current_ranges[$i]->min_age && $limit <= $current_ranges[$i]->max_age) $conflict = $result[$i]->entity_id; } } if ($conflict) fail();
Но это упрощение (не так ли?), Поскольку оно просто проверяет, попадают ли значения min / max в определенные диапазоны. Я думаю, что это может сработать, но с моей помощью нечеткая логика … может ли кто-нибудь помочь заострить меня на этом? Приветствия …