Can a table have a one-to-one relationship with a number of tables !?
Yes if you really mean 1:0/1:
Create Table Parent
(
Id ... not null Primary Key
, ...
)
Create Table Child1
(
Id ... not null Primary Key
, Foreign Key ( Id ) References Parent ( Id )
...
)
Create Table Child2
(
Id ... not null Primary Key
, Foreign Key ( Id ) References Parent ( Id )
...
)
This setup would require entering a value into the Parent table first and then the child tables (in no particular order) afterwards. Further, you could add a value to one of the Child tables and not the other since they both only rely on the existence of a value in the Parent table and not each other.
Addition
To select from your child tables, it would involve the same process as any other parent-child relationship. For example:
Select P.Col1, P.Col2...
, Child1.Col1, Child1.Col2...
From Parent
Inner Join Child1
On Child1.FKCol = Parent.PKCol
By using an Inner Join here, i'm only return Parent rows where there exists a Child row. If you wanted all Parent rows and only those Child rows where there is a match, you would use a Left Join instead of an Inner Join. If you wanted to select data from more than one child table at the same time, you can simply include those in the From clause:
Select P.Col1, P.Col2...
, Child1.Col1, Child1.Col2...
, Child2.Col1, Child2.Col2...
, Child3.Col1, Child3.Col2...
From Parent
Left Join Child1
On Child1.FKCol = Parent.PKCol
Left Join Child2
On Child2.FKCol = Parent.PKCol
Left Join Child3
On Child2.FKCol = Parent.PKCol