Обсуждение: "Hidden" field for each column

Поиск
Список
Период
Сортировка

"Hidden" field for each column

От
Don Y
Дата:
Hi,

Is there any way that I can consistently (across all
tables) add a parameter defining "what" each column
"is"?  (sorry, crappy grammar and ill-formed question).

I want to be able to embed in the database parameters
that tell it how to interpret each column.  In other
words, while the TYPE for two columns might be
text/char/varchar/etc., the data that each contained
could have vastly different interpretations.

For example, it might be a surname.  Or, the name of
a city.  Or, the name of a handtool.  Or a street address.

I would like the support routines to be able to look at
these parameters and adjust queries and other activities
accordingly.  So, when matching a surname, it might
apply some heuristics built on metaphone.  Yet, when
matching a book's title, may try some simple substitutions
and permutations (e.g., stripping words like "The" from
the beginning of the title; or relaxing rules for
punctuation or capitalization).

Burying this information in the database itself will let
the applications be unconcerned with adding this level
of support at their level -- and afford all applications
a consistent set of capabilities.

On a similar, but different, note, are there any ways
to "hide" a value behind each datum?  I.e. to treat
each entry as a struct containing the actual data type
PLUS this "hidden" value?  Without explicitly creating
ADT's for each potential datatype?

(sorry, I realize both questions are off-the-wall and
I can undoubtedly come up with kludges to implement them
but I was hoping for something "slicker"... :>)

Thanks!
--don

Re: "Hidden" field for each column

От
Tom Lane
Дата:
Don Y <pgsql@DakotaCom.Net> writes:
> I want to be able to embed in the database parameters
> that tell it how to interpret each column.  In other
> words, while the TYPE for two columns might be
> text/char/varchar/etc., the data that each contained
> could have vastly different interpretations.

If I were you, I'd probably do that by creating a bunch of domains
and using the domains instead of plain text/etc as the column types.
See CREATE DOMAIN.

You could also commandeer the COMMENT ON COLUMN facility if you'd
rather have a text string associated with each column.

            regards, tom lane

Re: "Hidden" field for each column

От
"codeWarrior"
Дата:
You can specifiy a "comment" on each field....


"Don Y" <pgsql@DakotaCom.Net> wrote in message
news:443D3EF7.10205@DakotaCom.Net...
> Hi,
>
> Is there any way that I can consistently (across all
> tables) add a parameter defining "what" each column
> "is"?  (sorry, crappy grammar and ill-formed question).
>
> I want to be able to embed in the database parameters
> that tell it how to interpret each column.  In other
> words, while the TYPE for two columns might be
> text/char/varchar/etc., the data that each contained
> could have vastly different interpretations.
>
> For example, it might be a surname.  Or, the name of
> a city.  Or, the name of a handtool.  Or a street address.
>
> I would like the support routines to be able to look at
> these parameters and adjust queries and other activities
> accordingly.  So, when matching a surname, it might
> apply some heuristics built on metaphone.  Yet, when
> matching a book's title, may try some simple substitutions
> and permutations (e.g., stripping words like "The" from
> the beginning of the title; or relaxing rules for
> punctuation or capitalization).
>
> Burying this information in the database itself will let
> the applications be unconcerned with adding this level
> of support at their level -- and afford all applications
> a consistent set of capabilities.
>
> On a similar, but different, note, are there any ways
> to "hide" a value behind each datum?  I.e. to treat
> each entry as a struct containing the actual data type
> PLUS this "hidden" value?  Without explicitly creating
> ADT's for each potential datatype?
>
> (sorry, I realize both questions are off-the-wall and
> I can undoubtedly come up with kludges to implement them
> but I was hoping for something "slicker"... :>)
>
> Thanks!
> --don
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>