Forum Webscript.Ru
Общие => Базы данных => Тема начата: Error202 от 25 Марта 2010, 13:22:28
-
Господа!
есть пространство 5 кубов, в каждом по 500 более мелких кубов, где в каждом по 15 совсем мелких...
В бд (MySQL) каждый куб записывается по пути начиная от большого, т.е. например k1=3, k2=345, k3=12
это все формально, изначально бд пустая
при регистрации юзер получает случайно выбранный самый мелкий куб и он заносится в бд в таком виде... (например k1=3, k2=345, k3=12)
Не могу придумать алгоритма, как случайно придумать куб из большого квадрата так, чтобы параметры k1,k2 и k3 не совпадали с уже существующим в бд (т.е. выбрать несуществуюий куб и занять его)?
k1,k2 и k3 - поля таблицы
-
Вариант с предсозданием записей для каждого куба с последующим select id from cubes where user_id = 0 limit 1 чем не подходит?
-
Да многовато надо делать пустых записей... 5*500*15...
Я сделал рандомный выбор начиная с самых мелких по 2-3... и проверкой по базе...
Для моих целей подойдет... т.к. заполнение будет максимум на 30%
-
Всего-то 37500 записей! :)
А что, если хранить отдельно параметры последнего добавленного элемента и добавлять каждый последующий с постоянным сдвигом, скажем, в 2000 ячеек?
-
Ага... именто так и сделал... храню последнего, но сдвиг не постоянный а рандомный...
-
Хм, а когда весь объём пройдёте, то при втором проходе будете проверять ячейку на занятость?
-
Интересует вопрос выбора инструментария с точки зрения удобства работы WEB-программиста.
Мы сейчас используем Perl-Oracle - но не совсем удобно.Кто что может посоветовать из реально работающего с Oracle WEB-инструментария?