By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,302 Members | 1,280 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 464,302 IT Pros & Developers. It's quick & easy.

How to make an attribute of one table to relate with the attributes of other related table

P: n/a
Hello everyone,

I am a new user of postgresql... I have to create a table named person
like:

create table person (

personname varchar(40),

telefonnumber varchar(20)

);

Now, I have to create tables for personname and telefonnumber like:

create table personname (

firstname varchar(20),
lastname varchar(20)

);

and,

create table telefonnumber (

countrycode varchar(20),
areacode varchar(20),
number int4
);
Now, when the personname table has attributes:
firstname = 'John'
lastname= 'Paul'

and similarly somevalues for telefonnumber table,

i must have the value of personname attribute in person table as 'John
Paul' and the telefonnumber attribute of person table must be the
integration of attributes in the telefonnumber table.

Pls. guide me how to make this possible?...Is there any way to do so?

Thanx for spending ur valuable time and waiting for ur reply.

regards,
Jaggy Bala.
Jul 19 '05 #1
Share this Question
Share on Google+
1 Reply

P: n/a
Hello,
I am a new user of postgresql... I have to create a table named person
like:

create table person (
personname varchar(40),
telefonnumber varchar(20)
);

Now, I have to create tables for personname and telefonnumber like:

create table personname (
firstname varchar(20),
lastname varchar(20)
);

and,

create table telefonnumber (
countrycode varchar(20),
areacode varchar(20),
number int4
);

Now, when the personname table has attributes: firstname = 'John'
lastname= 'Paul'
and similarly somevalues for telefonnumber table,

i must have the value of personname attribute in person table as 'John
Paul' and the telefonnumber attribute of person table must be the
integration of attributes in the telefonnumber table.

Pls. guide me how to make this possible?...Is there any way to do so?


I don't understand why you wan't to do this that way, wouldn't it be
easier with a single table like :
create table person (
firstname varchar(20),
lastname varchar(20),
countrycode varchar(20),
areacode varchar(20),
number int4
);
?

Or, if you really want to use 3 tables, i suggest using one as an index
and others are refering to it using foreign keys. It can be useful if you
need several "telefonnumber" entries for one person.
For example :

create table person (
id serial primary key
);

create table personname (
person_id bigint references person,
firstname varchar(20),
lastname varchar(20)
);

create table telefonnumber (
person_id bigint references person,
countrycode varchar(20),
areacode varchar(20),
number int4
);

Then you can retrieve all the data for 'somebody' with something like :
select * from personname,telefonnumber
where personname.person_id = telefonnumber.person_id
and personname.lastname = 'somebody';

In this example, the table "person" is useless, since it would be better
to put the index in "personname".

Finally, if you really want to keep the tables as you describe and you
need to update the "person" table each time the "personname" or
"telefonnumber" table are updated, you can play with triggers but i don't
see any interest in this.

Hope this helps.

Bye.
Jul 19 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.