DeepVarvar пишет:Этот пример можно еще более сократить и сделать аккуратным.
CODE (SQL):
скопировать код в буфер обмена
SELECT m.id mid, u.id uid, u.name
FROM messages m, users u
WHERE u.id = 1 AND m.receiver = u.id
Это была обычная выборка из двух таблиц.
От себя я бы не рекомендовал так делать. Вариант с альясингом через AS сработает и в MySQL, и в другой СУБД по ANSI-стандарту, а вот без AS - не факт.
DeepVarvar пишет:Всегда именуйте таблицы и их поля в нижнем регистре используя в качестве смыслового разделителя для слов нижнее подчеркивание.
я бы не стал выдавать такой неймспейсинг за единственно правильный. longTableName тоже допустимо, важно - чтобы стиль был единообразен.
По поводу неймспейсинга же еще бы добавил такую рекомендацию - а именно:
0. Именование ключей. Уникальные ключи именуются как ukField0Field1{..}FieldN, где Field0..FieldN - имена полей, по которым создается индекс. Внешний ключ имеет префикс fk
1. Именование первичных и внешних ключей - дополнительно. Как правило, таблица имеет первичный ключ по одному полю и оно - целочисленного типа.
Всегда такое поле следует называть id. Для внешних же ключей вступает в силу правило - образования имени от имени главной таблицы и дополнения его справа символами "_id".
Простой пример. Есть таблица goods (id, name) и есть таблица store. Первая - список доступных наименования товаров (справочник), вторая - позиции конкретного товара на складе. Для связи будет использовано наименование good_id - по
единственному числу наименования, указанного в таблице goods.
2. (Уже фигурировало в предыдущем пункте). Грамматическое наименование. Таблица - это сущность. Она почти никогда не должна содержать в имени действия, а всегда - название сущности. И название почти всегда во множественном числе. Поля же, как правило, указываются в единственном числе (но могут быть редкие исключения).