Klart hedervärt försök. Inte bara att göra den mer läsbar utan naturligtsvis är det lättare att återanvända en sådan SQL sats.
Nu har vi ju olika tillfällen men om det är en kod som skall användas av andra är detta mycket viktigt.
Vissa verktyg bygger kod åt ditt exempelhåll.
Tjenamoss. Jag har en liten fundering på hur man ska strukturera upp sin SQL-kod så att den blir så "human-readable" som möjligt.
Om vi tar följande query:
SELECT tabell0.*, tabell4.*, tabell3.status AS Acl, tabell2.user_rights, tabell4.retry_count AS tabell4RetryCount FROM tabell0 LEFT JOIN tabell4_user AS tabell4 ON(tabell4.user_id=tabell0.user_id) LEFT JOIN tabell3 ON (tabell3.acl_id=tabell4.acl_id) LEFT JOIN tabell2 ON (tabell0.mailbox_id=tabell2.mailbox_id) WHERE (tabell0.extension='xxx' AND tabell4.pin_code='yyy') OR (tabell4.user_name='xxx' AND tabell4.pwd='yyy')
Så är den i sin nuvarande form mer eller mindre oläslig, men om man slänger in lite tabbar och radbrytningar får man följande:
SELECT
tabell0.*,
tabell4.*,
tabell3.status AS Acl,
tabell2.user_rights,
tabell4.retry_count AS tabell4RetryCount
FROM
tabell0
LEFT JOIN tabell4_user AS tabell4
ON ( tabell4.user_id=tabell0.user_id )
LEFT JOIN tabell3
ON ( tabell3.acl_id=tabell4.acl_id )
LEFT JOIN tabell2
ON ( tabell0.mailbox_id=tabell2.mailbox_id )
WHERE
(
tabell0.extension='xxx'
AND
tabell4.pin_code='yyy'
)
OR
(
tabell4.user_name='xxx'
AND
tabell4.pwd='yyy'
)
vilket är en rejäl förbättring.
Hursomhelst så har det säkerligen forskats lite i detta och nu frågar jag er:
* Finns det någon vedertagen (de facto-)standard för hur man ska ställa upp sina sql-satser för att de ska bli så lättlästa som möjligt?
* Hur gör ni?
* Är min uppställning helt åt fanders?
nu har ni något att bita i :)
