Re: Help with Arrays and References

From: "William N(dot) Zanatta" <william(at)veritel(dot)com(dot)br>
To: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Help with Arrays and References
Date: 2002-06-25 20:46:30
Message-ID: 3D18D6A6.50703@veritel.com.br
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Somebody called 'Stephan Szabo' tried to say something! Take a look:
> On Mon, 24 Jun 2002, William N. Zanatta wrote:
>
>
>>Hi,
>>
>> I'm starting on PostgreSQL so please be patient; =]
>>
>> I'm building a book library database in which I have a table
>>TBL_FORMAT which keeps basic information on various file-formats (ie 1,
>>PDF, Portable Document Format) and a TBL_BOOKS which I want to reference
>>TBL_FORMAT. But the column Format inside TBL_BOOKS is an array, as a
>>book may exist in one or more file types. My doubt is: If I make
>>something like
>>
>> CREATE TABLE "tbl_books" (
>> "id_book" int4 DEFAULT nextval('TBL_Books_ID_Books_Seq'::text) NOT NULL,
>> "format" _int4 NOT NULL REFERENCES TBL_Format ON_UPDATE CASCADE,
>> ...
>>
>> will the CASCADE action update my TBL_Books (Format) keeping the
>>other values in the array or will it erase all and set the new Format value?
>
>
> That shouldn't even be legal assuming that tbl_format's key is an int.
> The two types must be comparable which isn't true of int4 and _int4.
> You're probably better off with a details table with the book's id and
> format's id and appropriate references.
>

Thanks Stephan,

I wanted to avoid repeated lines of information just because of the
'format' column. Maybe I could create a specific data type for that but
as it will be just a tiny small database, I will not spend my time.
Anyway how would you do it? The idea is:

- I have an electronic library.
- I have books in more than one file type (ie. pdf and zip)
- I want to keep it in the database, thus I'd have something like:

-=[ table books ]=-
bookName | format

mybook | array(1, 3)

-=[ table format ]=-
id_format | format | description
1 | pdf | Portable Document Format
2 | txt | ASCII RAW Text
3 | zip | ZIP Compressed File

I would like to hear you as I used to work with mysql which is not
too amazing as postgresql. The more I read the documentation, the more I
get crazy, PostgreSQL is very powerful but, my poor concepts doesn't let
me bring it to my life. =]

Thanks,

William

--
Perl combines all of the worst aspects of BASIC, C and line noise.
-- Keith Packard

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Stephan Szabo 2002-06-25 21:10:33 Re: Help with Arrays and References
Previous Message Jeremy Cowgar 2002-06-25 20:36:40 How to tell why an insert failed?