Каждая запись имеет поле содержащее информацию в какой день недели должно повторяться событие. Код (Text): |пн|вт|ср|чт|пт|сб|вс| | 1| 1| 1| 1| 1| 1| 0| |пн|вт|ср|чт|пт|сб|вс| | 0| 0| 0| 1| 1| 0| 0| К примеру необходимо выбрать все события которые повторяются в четверг и пятницу. Хранить строку "0001100" и пользоваться SUBSTR не предлагать.
ммм... эээ... уфф... ну видимо автор плавно подводит нас к правильному решению. а давайте послушаем его!
Форум уныл чуть более, чем полностью, кажется я припоминаю почему меня уже два раза здесь банили. igordata, а ведь в былые годы ты мне не раз помогал… Код (Text): -------------------------------------------------- // Python def decimal2binary(dec): return bin(dec)[2:] def binary2decimal(str): return int(str, 2) -------------------------------------------------- // PHP function decimal2binary($dec) { return decbin($dec); } function binary2decimal($str) { return bindec($str); } -------------------------------------------------- // JavaScript function decimal2binary(dec) { return (dec >>> 0).toString(2) } function binary2decimal(str) { return parseInt(str, 2) } -------------------------------------------------- // Язык не имеет значения binary2decimal('1111100') // 124 - будние binary2decimal('1111110') // 126 - длинные будние binary2decimal('0000011') // 3 - выходные binary2decimal('0000010') // 2 - суббота (маска для выборки) -------------------------------------------------- // SQL CREATE TABLE `reminder` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `message` text, `reminder` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ); INSERT INTO `reminder` VALUES (1, 'workdays', 124); INSERT INTO `reminder` VALUES (2, 'long workdays', 126); INSERT INTO `reminder` VALUES (3, 'weekends', 3); SELECT `message` AS `ON_SUNDAYS` FROM `reminder` WHERE `reminder` & 2; --------------------------------------------------
а почему нельзя хранить чтобы каждый день это отдельная колонка ? предлогаю explode правда придется потом массив парсить и удалять пн вт ср .. и будет дзен.
прекрасно! вот теперь есть чего обсудить. а чем эта схема лучше семи полей типа char(1) или tinyint ? насколько я понимаю, смысл задачи не в сбережении байтов, а в удобстве использования. чтобы одним селектом получить все записи "за четверг", я могу сделать для набора полей ... WHERE d4 или для битовой маски ... WHERE bitmask & 8 что из них будет быстрее? а нагляднее? Добавлено спустя 2 минуты 40 секунд: реально я не считаю ни одну из этих схем достойной. потому что условия вроде "каждое первое и пятнадцатое числа месяца" или "первая пятница месяца" здесь непредставимы. а были бы очень кстати!
включил мозг на 200% и он выдумал страшную картину это рабочий график составляется именно на неделю скажем 1 строка - хождение в туалет ( ежедневно) 2 строка - покупка жратвы 3 строка - покупка пива ... лучше мозг так не напрягать- все равно не угадаю
Код (Text): <p>Выбирай:</p> <select> <option>json_encode</option> <option>serialize</option> </select>
Да, перепутал форумы, на этом пока не банили. Задача была проста: есть PostgreSQL, MariaDB, SQLite базы данных. Языки backend Python, PHP и JavaScript на frontend. Базы данных должны синхронизироваться. Boolean вообще существует только в PostgreSQL, уже излишки на несколько колонок. Никакого PHP serialize, JSON в текстовых полях, или просто строки "1111100" - это обсуждать даже не хочется ни в каком виде. Органичение на размер 5Mb. Строки жмем LZW. Когда заканчивается место - предлагает удалить самые старые записи. Битва за байты разумеется. Когда будут меняться условия задачи и подход поменяется, а тогда задача была именно в этом. С базами не работал невообразимое количество времени, поэтому и спрашивал, quick answer так сказать. Если есть предложения лучше, всегда буду рад посмотреть на него, мне более чем надо.
проблемы высосаны из пальца. у тебя какой-то единственный случай, когда всё сошлось и твое решение работает - и очень хорошо. загоны насчет пяти мегабайт в 2013 году - это конечно твое личное дело.
Даже стражник у ворот имеет собственное мнение. Но кому интересно мнение стражника у ворот? Так можно сказать про что угодно, а то и вообще о форумчанине нехорошо отзываться, только потому, что он куда-то глубже копнул в алгоритмах да еще и гад такой условия поставил. Если никто здесь этого никогда не делал, это не значит, что другие не встречаются с таким через проект-два. http://en.wikipedia.org/wiki/Web_storage - те самые злощастные ~5Mb. Как сами столкнетесь, так первым делом в эту ветку и зайдете смотреть :-D.
я с таким не столкнусь, спасибо. я исповедую другие принципы. я ем мясо и умею пользоваться калькулятором. на 2тб хард войдут данные по 5 мб где-то около 400 тысяч клиентов/посетителей. зачем страдать?
Я не понимаю, почему вы молчите и не говорите человеку влоб: "DZEN эта тема очень похожа на самопиарство" задал вопрос и опа: я крутой я помню из школьного курса как работать с ноликами и единичками. И поэтому моя жопа умещается в 5 мегабайт. Трындец. Я это к чему, а кто му что: Код (Text): Форум уныл чуть более, чем полностью Обидно просто, хороший форум, а приходят, умничают и обсирают. НЕВЕЖЛИВО!!!
LOL наверное потому, что с "просветленным" спорит только дурак. мы не исправим его, а он не исправит форум. всё честно!