...
Mně přijde USING poměrně šikovné, protože už zápisem vidím, jestli se spojovací podmínka (více) přirozená, nebo komplikovanější. Ale to je asi jen věc zvyku. Většina SQL se bez USING () obejde, takže to nepovažuji za mantru.
Identifikátory nemusejí být
tabulka_id, ale zapsané i opačně:
"id_tabulka. To docela eliminuje problém s dlouhými názvy (kdy se člověk dozví, že se jedná o identifikátor až na konci).
Jako výhodu také vidím práci s pohledy. Při definici pohledu se pak jednodušeji přebírají identifikátory do výběru.
CREATE VIEW ... AS
SELECT
...
, id_tabulka
FROM
tabulka INNER JOIN druha_tabulka USING (id_tabulka)
Při vytváření pohledu to pak získá možnost pohlídat, jestli je takový zápis jednoznačný. Pokud se jedná o INNER JOIN, tak to projde, pokud se jedná o OUTER JOIN, upozorní mě to a mnohdy předejde chybě. Pokud bych používal vždy plný zápis
SELECT tabulka.id AS tabulka_id
připravím se o tuto výhodu a musím si dát dvojitý pozor, o jaký join se jedná a co je vlevo a co vpravo.
Proti tomu
mně střídmost v pojmenování identifikátorů nepřijde tak důležitá, protože IDE stejně našeptávají a klíče naznačují.
Ale o tom se opravdu nehádám jako o jediné pravdě, všemi způsoby to jde, a jsou různá pro a proti.