Hi all,
I want to define one class as compound object of user defined classes and
basic types.
something like:
CREATE TABLE attributes {
Strenght int,
Health int,
Mana int,
Inteligence int
};
CREATE TABLE character {
Name text,
Role text,
Damage int,
Defense int,
Age int,
Attributes attributes
};
CREATE TABLE player {
Name text,
Age int,
Telephone text,
Character character
};
This is something like defining a C++ class with other user-defined classes as
attributes (no derivation, but containment).
Postgres 6.3.1 accepts the definitions above but the problems come when I want
to insert records of "player" type.
I have the following questions:
1. Is there any syntactic sugar (as { } for arrays) for INSERTing a new
"player" including its Character sub-object?
2. what about the same problem using a COPY to populate the DB from ascii
file?
3. after eventually having populated the DB, I'd like to write something like:
SELECT Character.Name, Character.Attributes.Intelligence FROM player
WHERE Age<18 AND Character.Age > 25;
to extract the name and intelligence of all the characters older than 25
played by people younger than 18
I know that some form of composite classes can be defined inserting OIDs of
sub-objects as attributes but this seems a bit weak and tricky solution. Is
there a better one?
Thanks in advance
Ferruccio