in the real world its fairly unusual to have one to one relationships.. often its done for performance or security issues, or if say the db cannot handle the number of columns. There are others (better) but for the life of me I can't remember any right now.
int he real world you would have as many relationships as you felt were needed to support the real world you are modelling. its unusual to have more than 1 realtionship between tow tables, unless there are two or more separate relationships
eg you mioght have a table which identified say the signoff on a purchase order (you may then the id of the person who raised the order, the id of the person who signed off the order, the id of the person who entered the order.... each of whihc whould be a FK to a person in say your staff table.
its legit to have the fk to refer to a column within the same table
eg you have a person ID, and a manager ID, the person ID is a PK (no nulls), the manager ID is a FK to person Id in the staff table, the manager id is nullable, null indicates that this person has no manager
have a look at rudy's (r937)
site
and tony marston's
site deserves a good read
the terminology can be a bit tortuous at first
a PK is something that makes this row unique
a FK is something in this table that refers to another table's value, a FK value is unique in in that other table
for what its worth in your president / country model
"a president" is a distinct entity so If have a table containing details of presidents
"a country" is a distinct entity, do Id have a countries table (probably using the ISO country code as the PK
a country can have more than one president*
A president may be president more than once
its unlikely that a president can be a president in more than one country
so to get round that I'd have what's called "an intersection table"
which associates the values from the other tables countries & presidents plus any other data which is relevant to that intersection
so I'd have the President ID, the Country ID plus things like
date became president, date stopped being president. it could include reason became president (eg election, deputy), reason stopped being president (eg couldn't stand again, lost election, got caught out comitting fraud, died, overthrown......) conceivably those reason codes could justify tables in their own right. in which case the reason code in the intersection tabel becomes the FK to the reason code in say PresidentLeavingCode, where the reason code in that table would be unique and hence the PK
*unless you are an African ex colonial country run by a Marxist trained dictator where you can only have one president