From what I can tell, you have basically layed out what you want for your table designs. They all have one field in common for a foreign key. So you could easily do something like this for table structures:
create database CurriculumVitae:
create table education (
reference_no int not null,
userid varchar(50) not null,
school varchar(75),
city varchar(35),
state char(2),
degree char(5),
year int,
primary key(reference_no,userid)
);
create table position (
reference_no int not null,
userid varchar(50) not null,
department varchar(25),
school varchar(75),
university varchar(75),
city varchar(35),
state char(2),
date_from date,
date_to date,
primary key(reference_no,userid)
);
create table honors (
reference_no int not null,
userid varchar(50) not null,
award varchar(50),
year int,
primary key(reference_no,userid)
);
create table prof_activities (
reference_no int not null,
userid varchar(50) not null,
activity varchar(50),
year int,
primary key(reference_no,userid)
);The reason why I layed it out with two primary keys for each table is that so you can have multiple entries for each user and the primary key remains unique for each user. Userid should correspond to the table in which you keep faculty information in. Then you have a common link between all different tables to reference against. It would be easy enough to add extra tables and keep inside of the database layout.