Oct. 22nd, 2010

pozitronik: (Default)
Сколько работаю с базами данных, а вот только сейчас наткнулся на интересное поведение MySQL при объявлении полей timestamp с NOT NULL.
Допустим, делаем мы:
CREATE TABLE `sometable` (`somefield` timestamp NOT NULL)
А на выходе получаем таблицу, созданную вот так:
create table `sometable` (`somefield` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP)
Более того, тот же вариант получится, если создать таблицу так:
create table `sometable` (`somefield` timestamp NOT NULL default CURRENT_TIMESTAMP)

С автоматическим добавлением default value всё логично. Раз поле NOT NULL - будьте добры дать значение по умолчанию, а для этого типа полей оно CURRENT_TIMESTAMP.
Но вот почему бы при update не оставлять предыдущее значение поля? При попытке вписать туда NULL выдавать ошибку, и всё. А так мы имеем то, что при любом апдейте строки значение этого поля автоматически изменится.
Напрямую о таком поведении в мануале не говорится, только в пользовательских комментариях к нему (это я уже потом нашёл).
pozitronik: (Default)
Вот интересно, по какому принципу софтоделатели нумеруют версии своего софта?
Вот, например, гугл выпустил седьмую версию этого вашего хрома. Седьмую, блджад. Раз в полгода новая цифирь (даже быстрее, хром в 2008 появился, а у них уже девятая ветка в девелопе), изменений - ну не то, чтобы с гулькин нос, но...
Сравним с фуррифоксом, например. Новая версия - раз в два года, изменений столько, что это, фактически, совершенно другая программа. Обновления веток (0.x) по количеству изменений примерно такие же, как обновления хромого.
Total Commander раз в пару лет обновляется по 0.5 (с чуть ли не годовым периодом тестирования), и серьёзных улучшений обычно набирается пара десятков, а всяких исправлений - около тысячи. 0.xx версии багфиксовые, их, обычно, парочка выходит после каждого мажорного апдейта.
Юникосвый софт нумеруется как-то по сотым долям. Наткнуться на софтину с версией 0.x, причём включённую в официальный репозиторий, совершенно не трудно.
Ну и т.д.
Я знал одного программера-шароварщика, который каждому обновлению своей программки присваивал очередной номер. SoftwareName ver. 153 - каково?

Так как же, как правильно нумеровать версии? Ведь цифра должна показывать и количественные и качественные отличия версий.
Я, например, в своих разработках придерживаюсь такого типа нумерации, при котором версией 1.0 считается версия, полностью удовлетворяющая изначальному ТЗ. Десятые доли номера - для серьёзных изменений, сотые - для мелких. Обновление основного номера - абсолютно новая версия программы, либо серьёзных изменений набралось столько, что она таковой выглядит при сравнении с 1.0.
Вот как-то так.

December 2016

S M T W T F S
    123
45678910
1112131415 1617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 12th, 2025 10:21 pm
Powered by Dreamwidth Studios