Может быть, вам интересно сначала прочитать эту статью http://mwop.net/blog/2012-08-17-on-microframeworks.html
В любом случае существует Silex - это микро-фреймворк, основанный на Symfony 2 Framework. Silex разрабатывается и поддерживается теми же людьми Symfony 2
В основе лежит концепция «переменной диапазона».
Крис Дейт и Хью Дарвен считают и разговорный термин «псевдоним», и термин «корреляционное имя» в стандарте SQL как «неуместное» и «серьезно [искажающее] истинное положение дел».
Хью Дарвен, « SQL: сравнительный обзор »:
Возможно, вы выучил другой термин для переменной диапазона, который использовал Кодд в его ранние работы, но не были приняты стандартом SQL до 2003 года. в некоторых текстах SQL он называется псевдонимом, но это совсем не подходит, на самом деле, потому что это означало бы, что это имя таблицы и, следовательно, обозначает таблицу, а не строку. Стандарт SQL использует одинаково неуместное название корреляции термина (не обозначает корреляцию, что бы это ни было), но только для случая, когда имя явно задано (через
AS
в примере), а не для случая, когда простое имя таблицы дублируется как имя переменной диапазона. В SQL: 2003 переменная диапазона была принята как удобный единственный термин для охвата более общий случай.
CJ Date, «SQL и реляционная теория: как написать точный код SQL» :
переменная диапазона в реляционной модели - это переменная, которая над "набором строк в некоторой таблице (или набором кортежей в некоторой отношение, если быть более точным). В SQL такие переменные определяются как средства спецификации
AS
в контексте либоFROM
, либоJOIN
, как в следующем примере:SELECT SX.SNO ОТ S AS SX ГДЕ SX.STATUS> 15
SX
здесь переменная диапазона, которая выходит за пределы таблицыS
; в других слов, его допустимые значения - строки таблицыS
. Вы можете думать о выражениеSELECT
в целом оценивается следующим образом. Первый, переменная диапазона принимает одно из допустимых значений, скажем, строку для поставщикаSNO = 'S1'
. Значение статуса в этой строке больше чем 15? Если это так, то в результате появится номер поставщика«S1»
. Затем переменная диапазона перемещается в другую строку таблицыS
, например строка для поставщикаSNO = 'S2'
; опять же, если значение статуса в этой строке больше 15, то соответствующий номер поставщика появляется в результат. И так далееSQL требует, чтобы выражения
SELECT
всегда были сформулированы в терминах переменных диапазона; если таких переменных нет явно заданный, он предполагает существование неявных с те же имена, что и соответствующие таблицыПредостережение: многие тексты SQL относиться к именам переменных диапазона (или именам корреляции) как к псевдонимам , и описывать их, как если бы они были просто альтернативными именами для таблиц они варьируются. Но такая характеристика серьезно искажает истинное положение дел - действительно, оно выдает серьезное отсутствие понимание того, что происходит на самом деле, и категорически не рекомендуется
Интересно, что LINQ правильно распознает переменные диапазона, например
Псевдоним для таблицы ADMIN. Здесь нет необходимости, потому что в вашем запросе есть только одна таблица.
Если у вас более одной таблицы, и некоторые из столбцов совпадают, вам необходимо различать их. Один из способов - написать имя таблицы перед именем столбца. Например,
Select ADMIN.Name, person.name from ADMIN, person where person.id = admin.id
Чтобы сделать это короче, добавьте псевдонимы для имен таблиц.
select a.Name, p.Name from ADMIN a, person p where person.id = admin.id
A - это псевдоним для таблицы.
Вы можете изменить a на любой допустимый идентификатор, он не зависит от базовой схемы. Обычно он используется для различения полей из разных таблиц, избавляет от необходимости каждый раз вводить полное имя таблицы (упрощает чтение SQL с коротким псевдонимом).
На самом деле это не требуется в приведенном вами примере,
SELECT NAME, NUMBER, STRING, RDB$DB_KEY FROM AMDIN
тоже должно работать
A - сокращенное обозначение (термин: псевдоним ) для таблицы ADMIN
Запрос использует подобное, чтобы вам не нужно было писать ADMIN.NAME, ADMIN.NUMBER и т. Д. И т. Д. Если у вас есть пятнадцать полей в вашей таблице, а ваша таблица имеет такое имя, как VPCPDEEE, очень утомительно набирать одно и то же имя таблицы снова и снова.
a - это то, что называется псевдонимом таблицы. В части запроса, которая говорит:
FROM ADMIN a
Поместив "a" после имени таблицы, вы создали псевдоним, который теперь можно использовать вместо имени таблицы. Без псевдонима вам нужно будет использовать полное имя таблицы, чтобы полностью определить имена столбцов, на которые вы ссылаетесь в запросе.
Без псевдонима таблицы ваш запрос будет выглядеть следующим образом:
SELECT ADMIN.NAME, ADMIN.NUMBER, ADMIN.STRING, ADMIN.RDB$DB_KEY FROM ADMIN
Хотя, поскольку вы выбираете только столбцы из одной таблицы, имя (или псевдоним) таблицы в этом примере фактически не требуется.
a = ADMIN
Эквивалент:
SELECT ADMIN.NAME, ADMIN.NUMBER, ADMIN.STRING, ADMIN.RDB$DB_KEY FROM ADMIN
a используется в качестве псевдонима для таблицы ADMIN.
Когда правильно использовать псевдоним и в какой форме этот псевдоним должен принимать, может вызвать некоторые твердые мнения авторов sql.
Вот пара вопросов о переполнении стека по этой теме.