Tags: ms sql server

wolf

Новости базостроения - сайт рестлингистов - техаская нормальная форма 2

Пользуясь предыдущим постом угадайте, что находится в таблице tbl_Plus_Minus.

PS. Я кажется начинаю догадываться почему резня бензопилой произошла именно в Техасе...
wolf

Новости базостроения - сайт рестлингистов - бляполныйпиздец

Есть сайт каких-то чертей, которые рестлингом занимаются.

На сайте есть фича: ты набираешь имя спортсмена, а тебе выдаёт ссылки на спортсменов, имена которых начинаются с первой буквы набранного тобой. Вроде бы всё просто. А вот хуй. Человек похоже не знал, как взять первую букву из введёного имени, и приделал, чтобы вы думали? Дропдаун со всеми буковками! Типа, ввёл имя? Ну, значит нефиг выделываться и выбери буковку из списка, чтоб тебе заюзалась эта супермегафича, иначе будешь лохом позорным.

Если вы думаете, что это всё, то это не так. Буковки для дропдауна этот дропнутый даун берёт из таблицы!!! Ибучий случай... Не, вот реально, есть таблица в которую забиты буковки английского алфавита (то, что с каждой буквой происходит перед тем, как она на форму попадает, вообще не поддаётся описанию)

Вы думаете это всё? Ха. Продолжаю.

У нас есть поле в базе данных, которое хранит одну (это важно!) буковку. Какого типа будет это поле? Правильный ответ - char(10). Не varchar, а именно char. То есть в базе на каждую букву принудительно хранится ещё 9 пробелов и никаких гвоздей. Бляполныйпиздец

Как потом эта мегатаблица завязывается на таблицу юзеров вообще отдельная песня. Ибо один символ завязывается с помощью ИДшника из 4-ёх символов (чувствуется забота о производительности :-))) ). Про валидность данных просто умолчим. Проверять базой инфу при таких условиях - ну, его нафиг. Не, в принципе можно, но ЗАЧЕМ?!?!

ЗЫ. Для полноты картины добавлю, что данная особь из Техаса, что в принципе говорит о многом
ЗЫ2. Судя по названиям баз на его сервере, фантазия у человека нехуйовая
ЗЫ3. Продолжаю наблюдение...
wolf

Новости базостроения

Всякого повидал, но чтоб вот так...

По ходу в системе появляется таблица, в которой будет только одно интовое поле.
В этом поле будут находиться значения - 1,2,3,4,5,6,7,8,9,10,11,...
И всё.
Таблица в выборках не учавствует ни каким боком.
Истинное предназначение - поддержание ссылочной целостности, ибо 4-ая нормальная, мать её, форма.
В принципе можно выкинуть её нафик, чтоб не позориться перед державами и последующими поколениями, но ...
Но правила нормализация, как и уставы, пишутся потом и кровью и поэтому нех.

Продолжаю наблюдение за системой
wolf

SQL-инъекции - зло

Если один дурак забросит в реку камень, то потом 10 мудрецов не смогут его оттуда вытянуть (С)

Исправить то я исправил, но есть одно но - я НЕ ПОНИМАЮ, как они это сделали!!!

Чтобы исправить, пришлось писать курсор и цикл по нему. В принципе Сикуль не различает SQL и T-SQL, это ж не Оракл в конце концов, и поэтому ему как бы и пофиг, что в него инжектнули - запрос или пакет, но фишка в том, что некоторые поля были изменены, а некоторые нет, и я (наверно всё-таки мы) не понимаю по какой логике изменялись именно эти поля. Хотя может всё просто тупо упёрлось в недостаток места.

Коментарий к коду, через который была сделана инъекция:
// [тут было имя буржуйского манагера] 01/05/2005
// Just follow the old way, do not want to spend too much time.

Как говорится: дешева рибка - погана юшка
Делайте выводы, господа разработчики, нужен ли вам такой цирк
wolf

Автоинкремент во всех базах ...

... сделан, как принято говорить в нашем городе, немного по дебильному.

Это касается имено автоинкремента, а не генераторов-последовательностей и тому подобной лабудени. MS SQL, Sybase, MySQL поступили неправильно заюзав эту фичу. Потому что програмировать теперь эту хрень не очень удобно.

Пользуясь случаем выражу фе отсутствием в сикуле типа данных такое-то_поле_в_такой-то_таблице

PS. И не слова о политике или войне
wolf

Как всё интересно

За 3 часа работы трейсер наколядовал гиг инфы по запросам всего с двух(!) баз работающих в тестовом(!!!) режиме без реальной нагрузки(!!!!!), после чего упёрся в лимит и благополучно сдох.
Детское отношение мелкомягких к месту на винте известно давно, но чтоб так!

О!
Я для прикола запаковал результат трассировки.

Задача.
Есть файл размером 1Г
Пакуется зипом из ТоталКомандера, то есть сжатие 6 (кажется)
Вопрос - сколько будет весить файл после упаковки?
Загадайте наиболее вероятное по вашему мнению число и загляните под кат
Read more...Collapse )
УБИВАТЬ!!!!!

PS А натравлю как я на трассировку DTA, мож чё умное скажет
wolf

Предлагаю предать церковному проклятию ...

... тех лиц, которые придумали систему триггеров в MS SQL Server. В особенности тех, которые решили, что BEFORE триггеры не нужны и достаточно только AFTER.
Тех же, кто писал внешние ключи с его "нот поисбл мултиплай энд сайкл каскад пас" нужно подвергнуть аутодафе, дабы очистительный огонь восстановил их карму.
Пиздец-пиздец-пиздец