[thelist] [MS SQL Trickery] Is my technique good, bad, or neither?

rudy rudy937 at rogers.com
Thu Aug 21 19:54:19 CDT 2003


well it appears that the internet swallowed my original reply to the list to
joshua's question, and barfed up dupes of a reply to a message that i now
see was probably offlist to me

if anyone's confused, sorry

blame it on sobig, blame it on my service provider, blame it on me

here's my first reply to joshua's original question:


> UDF?  not terribly portable across database systems
>
> that may of course not be a big concern to you
>
> still, i don't see your method as "trickery"
>
> dunno about UDF performance in queries, i never used one before
>
>
> here's an alternate strategy: an application "ooak" table
>
> "ooak" = "one of a kind"
>
> similar to oracle's DUAL, and used in exactly the same circumstances that
> DUAL is used --
>
>   e.g.  select current_date from ooak
>
> ooak has exactly one row, and i usually don't both assigning a pk (because
> instances where a pk is required are vanishingly rare, i.e. where ooak has
> child tables with foreign keys that need to reference ooak's pk)
>
> there is one column for every "one of" application constant
>
>    create table ooak
>      ( default_language_id  smallint not null )
>
>    insert into ooak values (11)
>
> your default language thingie fits this model perfectly!
>
>     CREATE VIEW dbo.view_items_default_language
>     AS
>     SELECT
>         item.field1
>       , item.field2
>       , ...
>       , item.fieldX
>       , item_language.name
>       , item_language.description
>     FROM       dbo.item
>     CROSS JOIN dbo.ooak            -- is this cool or what
>     INNER JOIN dbo.item_language
>     ON dbo.item_language.language_id = dbo.ooak.default_language_id
>     AND dbo.item_language.item_id = dbo.item.id


if anyone's interested in an elaboration, just holler

the cross join is a pretty rare animal and this is a great example where it
is combined with a single-row table to provide customized application data
without pain or fuss


rudy



More information about the thelist mailing list