Pull to refresh
16
0
Александр Охотин @xSus

User

Send message

Рекурсивные SQL запросы

Reading time2 min
Views148K
Рекурсивны SQL запросы являются одним из способов решения проблемы дерева и других проблем, требующих рекурсивную обработку. Они были добавлены в стандарт SQL 99. До этого они уже существовали в Oracle. Несмотря на то, что стандарт вышел так давно, реализации запоздали. Например, в MS SQL они появились только в 2005-ом сервере.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments51

Варианты проектирования БД

Reading time1 min
Views9.9K
Все люди, вовлеченные в проектирование различных БД, думаю, нередко задаются вопросом о нужной структуре. На данный момент, есть два варианта хранения данных, каждый из которых, в свою очередь, имеет ряд своих недостатков.

1. Объединенное хранение

Например, есть таблица типов объектов (ObjectsTypes), таблица самих объектов (Objects) и их свойств (ObjectsFields). По желанию, можно хранить еще и типы полей-свойств, это не принципиально.
Связи между таблицами определены однозначно (объект имеет один тип (typeID) и ряд свойств, связанных с родительским объектом полем objectID), между объектами связь осуществляется и с помощью древовидной структуры (родитель ← ребенок) и путем заведения отдельной таблицы (ObjectsRelations) для сетевой структуры, в которой дочерний элемент может иметь несколько родительских.

2. Индивидуальное хранение

Если представлять эту реализацию на примере, то для хранения блогов нужна таблица Blogs с полями, относящимися к нему, таблица BlogsTopics, хранящая посты и их свойства, таблица BlogsVotes, содержащая все пользовательские голоса и т.д. Можно до бесконечности развивать этот пример — смысл такого хранения в том, что для каждого типа данных создается своя таблица (если нужно, то несколько).

Я считаю, что для индивидуальных решений, например, для системы Хабры, идеально подошел бы второй вариант, а первый можно использовать в коммерческих решениях (как, собственно, многие и делают).
Хотелось бы услышать неозвученные мной доводы в пользу каждого из методов.
Total votes 30: ↑26 and ↓4+22
Comments51

Проектирование баз данных. Паттерн Компоновщик (Composite)

Reading time4 min
Views16K
Web 2.0 победоносно шагает по виртуальному миру. Социальные сети растут как грибы после дождя. Теперь в одном месте вы можете хранить свои фото, видеозаписи, писать блоги и слушать музыку. Все это можно комментировать, класть в избранное, копировать… Возможностей много, контент социальных сетей разнородный и разнообразный, и в этом их преимущество.

А теперь представьте себе структуру БД какого нибудь «Вконтакте». Представили? И что вы видите? Множество таблиц с данными? А что еще? Множество таблиц для связей много-ко-многим! Необходимых, с точки зрения реляционной БД, но лишних с точки зрения логики. Но это еще не все. Среди полей таблиц мы видим огромное количество «лишних» полей, являющихся всего лишь внешними ключами, служащими для связей один-ко-много, так же необходимых с точки зрения реляционной теории, но абсолютно бесполезных с точки зрения логики.
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments98

SQL Server 2008: обзор нововведений

Reading time6 min
Views15K

SQL Server 2008: обзор нововведений


Microsoft SQL Server – это проприетарная система управления базами данных,
обеспечивающая сетевой многопользовательский доступ,
использует расширенный язык запросов T-SQL.
Ведет свою историю с 1989 года, первоначальная версия создана Sybase.
В предыдущей 2005 версии была введена поддержка CLR, которая позволяла
писать процедуры с использованием языков, работающих на платформе .Net.

Читать Далее
Total votes 75: ↑69 and ↓6+63
Comments44

Иерархические (рекурсивные) запросы

Reading time10 min
Views512K
Дерево объектов

Чтобы понять рекурсию, сначала надо понять рекурсию. Возможно, поэтому рекурсивные запросы применяют так редко. Наверняка вы представляете что такое SQL-запрос, я расскажу, чем рекурсивные запросы отличаются от обычных. Тема получилась объемная, приготовьтесь к долгому чтению. В основном речь пойдет об Oracle, но упоминаются и другие СУБД.

Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments159

RELAY — файловый менеджер в формате ВЕБ 2.0

Reading time1 min
Views2.1K
RELAY Насколько мне известно файловые менеджеры для сайтов еще не обсуждались. Пользуясь случаем хочу представить вам файловый менеджер под названием RELAY, данный скрипт был написан на PHP под MySQL, так же был использован PERL для динамического отображения процесса загрузки.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments49

Альтернативная замена popup окнам

Reading time1 min
Views2.7K
Класс LightWindow v2.0 (http://stickmanlabs.com/lightwindow/) предназначен для удобного визуального отображения практически любой информации (видео, flash, графика, страницы, формы ...). Работает на основе библиотеки Prototype + Scriptaculous.
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments72

Новый релиз jQuery — 1.1.4: фантастическое ускорение!

Reading time1 min
Views1.5K
24 августа вышел новый релиз популярной JavaScript-библиотеки jQuery: jQuery-1.1.4. Вероятно, это последний релиз из ветки 1.1.x и в сентябре выйдет релиз 1.2.
  • значительное (в несколько раз) увеличение быстродействия по сравнение с предыдущим релизом
  • вместо операторов '$' и 'jQuery' для обращения к функциям JQ можно использовать любое имя
  • возможность использовать несколько версий JQ на одной странице, назвав их по-разному
  • возможность внедрять JQ в другие JS-библиотеки

Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments53

Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link.

Reading time7 min
Views10K
Приветствую всех читателей. Популярность AJAX такая, что это, по сути, уже стандарт де-факто для многих проектов. Хотя, как и все технологии (особенно, новые и/или модные), она часто применяется (чего уж грех таить) и там, где без нее не обойтись, и там, где вполне можно, а зачастую и нужно. Впрочем, сегодня речь пойдет о другом.

Одним из неприятных моментов при использовании AJAX – является отсутствие прямых ссылок на динамически сгенерированные страницы или их отдельные части. Здесь кроется и вообще-то концептуальный вопрос – а что, собственно говоря, является в таком подходе страницей – она не имеет некоторого статического представления, каждый раз совершенно другая (не путать с динамической генерацией на сервере), и, фактически, предоставляет пользователю окно в многомерное представление самой себя.

Но все же – допустим, у нас есть простенький, но претенциозный веб-сайт визитка, где по переходам меню AJAX подгружает и выводит контент, а мы хотим дать знакомому по ICQ ссылку на контактную страницу (или любую другую, не суть важно).

Есть два подхода решения проблемы ссылок.
Читать дальше →
Total votes 66: ↑58 and ↓8+50
Comments143

jQuery будет поставляться с Visual Studio

Reading time1 min
Views1.5K
По сообщению ScottGu's Blog, известный javascript-фреймворк в дальнейшем будет поставляться вместе с дистрибутивами Visual Studio.
jQuery будет интегрирован по принципу «as-is», товарищи из MS обещают в исходный код не вмешиваться. Также обещан intellisense на уровне IDE.
Планируется включить jQuery в последующий релиз MVC фреймворка, после чего javascript-библиотека будет по умолчанию включаться во все новые проекты создаваемые в Visual Studio.

Ссылки по теме:
Пост в блоге jQuery
Пост о том, как хорошо уживаются ASP.NET AJAX и jQuery вместе на одной странице
Total votes 56: ↑53 and ↓3+50
Comments35

Утипизация в C#

Reading time5 min
Views19K
Многогранный Шерлок Холмс и Эраст Фандорин, идеальный аристократ, очень чтили дедуктивный метод и оба достигли в его применении потрясающих успехов. «Отбросьте все невозможное, то, что останется, и будет ответом, каким бы невероятным он ни казался» — так говорил сэр Артур Конан Дойль устами своего героя.

Однако же, на дедуктивных умозаключениях наука о рассуждениях не оканчивается — не стоит забывать еще и о индукции. О ней и о приближенных материях и будет трактовать сей трактат.
Продолжить чтение трактата
Total votes 39: ↑36 and ↓3+33
Comments20

WPF Binding: Мощь стилей и шаблонов в WPF.

Reading time9 min
Views38K
В WPF существует очень четкое разделение между поведением Control'а и тем, как он выглядит. К примеру, поведение объекта класса Button состоит в том, чтобы реагировать на различные события по клику, но его вид может быть любым — вы можете сделать кнопку в виде стрелки, рыбы, или чего-либо еще, что подходит для вашего приложения. Переопределение отображения Control'а очень просто сделать при использовании VS со стилями и шаблонами, и даже еще проще, если у вас есть Microsoft Expression Blend. В этом примере я покажу вам, как переопределить отображение ListBox'а, который используется для отображения списка планет.
Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments23

Новые возможности C# 4.0. Часть 1: dynamic

Reading time3 min
Views5.9K
Одна из самых интересных возможностей язык C# 4.0, который был представлен на PDC является новое ключевое слово — dynamic. Оно позволяет разработчику объявить объект, привязка к методам которого, будет осуществлятся на этапе выполнения, а не компиляции. Примечательно, что класс, который инстанциирует этот объект объявляется стандартным способом.
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments29

Новые возможности C# 4.0. Часть 2: параметры по умолчанию

Reading time3 min
Views11K
Сегодня мы поговорим о другой новинке C# 4.0, которую я ждал много лет. В прошлом, ее отсутствие объяснялось архитектурным решением. Но, видимо, прагматизм победил и теперь у нас есть параметры по умолчанию. Чтобы сделать их еще более полезными они добавили к ним именованые параметры. Мы обсудим их через пару минут, а сейчас займемся параметрами по умолчанию.
Читать дальше →
Total votes 50: ↑46 and ↓4+42
Comments60

Новые возможности C# 4.0. Часть 3: Ковариантность обобщений

Reading time3 min
Views15K
Когда обобщения(generic) пришли к нам вместе с C# 2.0, они стали одной из лучших возможностей в этом языке. Те, кто когда-либо создавал классы строготипизированных коллекций в C# 1.0 знает, насколько они упростили нам жизнь и уменьшили количество кода. Единственная проблема заключалась в том, что обобщенные типы не следовали тем же правилам наследования, которые были в силе для обычных типов.
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments26

Отладка приложений в .NET Framework 2.0 и выше

Reading time12 min
Views5.8K
Хочу начать серию статей, посвящённых отладке ваших .NET приложений на стороне заказчика, а также оптимизации вашего кода. В связи с этим понадобиться немного подготовить вашу систему. В этой статье мы ознакомимся с различными инструментами для отладки приложений, немного углубимся в описание CLR, где это будет необходимо.
Отладка приложений в .NET Framework
Total votes 49: ↑44 and ↓5+39
Comments27

Создание заставок (splash screen) в .net 3.5 SP1

Reading time5 min
Views23K
Если вы сталкивались с программированием в .net, то наверняка замечали, что при запуске программы, написанной с использованием WPF, долгое время ничего не происходит. Так продолжается секунд 10, а потом уже открывается главное окно приложения. Даже запуск пустого шаблона WPF приложения занимает около двух секунд.

Эта пауза вносит неопределенность в восприятие программы пользователем: запустилась программа или нет?

Решить эту проблему можно показав заставку сразу после запуска. Это даст физический отклик сразу после запуска приложения и создаст иллюзию более быстрой загрузки.

О том, как это сделать написано под катом.
Читать дальше →
Total votes 62: ↑58 and ↓4+54
Comments67

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity