|
Instructional Technology Portfolio | Learning Environments Design I | Project Login | Résumé | IT Portfolio | Home |
All the components in the database fall into one of several broad categories denoted as the component type such as CPU, motherboard, video adapter, etc.. The lookup term field is utilized to construct a Google "define" query. For example, "video adapter" becomes a URL link video adapter wherever this category is denoted in specs for a component.
The heart of the database is the database of components. In this particular implementation, I strove not for a comprehensive database, but for a illustrative selective set of components that lead to questions and answers and likely trouble-spots for new comers in building their first computer.
As I searched for components to include in the database, I frequently ran across useful links in each component category. This table captures these links and associates them by component types.
Rather than downloading and storing all the images on my website, I chose to reference images hosted on other websites, providing links to the websites in the process so as to provide proper credit to the image's origins.
This table lists all the salient technologies such as PCI, SCSI, AGP, IDE, etc..
This contains entries for each component and all technologies a particular component supports. To determine if one component is compatable with another, a query is performed to look up all the technologies of each component that is being paired and if a common technology exists for both components, then the component are assumed to be compatable. If a match is indeed found, then a secound query is run against the component incompatabilities table to determine that there are no explicit after-market incompatabilities.
The Questions table defines each question and featured component in the component matchup exercise. The question itself will largely be text that describes the featured component in some detail much as you would find on the online shopping sites. Depending on the choose_correct_yn flag, the learner is then asked to choose either the compatable or incompatable component from the list presented.
The Answers table houses the answers to the various questions along with reason text that is displayed to the learner when he/she chooses a particular answer. If the choice is incorrect, the compatability issues are discussed and learner will be sent back to the featured component's question to try again. If the choice is correct, the criteria that made the component the correct choice are pointed out in the reason text that's presented.
The component conflicts table provides a way to detect incompatability between two components during the build computer simulation exercise. Two components are listed along with reason for the conflict.
create table component_types (
component_type_id integer not null primary key,
description varchar(50),
lookup_term varchar(50)
);
create table component_resources (
resource_id integer not null primary key,
component_type_id integer not null references component_types(component_type_id),
resource_title varchar(100),
url varchar(100)
);
create table components (
component_id integer not null primary key,
component_type_id integer not null references component_types(component_type_id),
component_name varchar(100),
manufacturer varchar(100),
description varchar(500),
specs varchar(2048)
);
create table component_images (
image_id integer not null primary key,
component_id integer not null references components(component_id),
image_caption varchar(100),
is_primary boolean default 'f',
url varchar(255),
page_url varchar(300)
);
create table component_techs (
tech_id integer not null primary key,
tech_name varchar(50),
description varchar(2048)
);
create table comp_questions (
question_id integer not null primary key,
question varchar(2048),
component_id integer not null references components(component_id),
choose_correct_yn boolean
);
create table comp_answers (
answer_id integer not null primary key,
question_id integer not null references comp_questions(question_id),
component_id integer not null references components(component_id),
correct_yn boolean,
reason varchar(2048)
);
create table comp_matchup_sessions (
sessionid integer not null primary key,
start_timestamp timestamp default now(),
end_timestamp timestamp,
current_question integer,
last_answer integer
);
create table simulation_steps (
step_id integer not null primary key,
component_type_id integer not null references component_types(component_type_id),
step_order integer not null,
description varchar(4096),
direction varchar(256)
);
create table simulation_sessions (
sessionid integer not null primary key,
start_timestamp timestamp default now(),
end_timestamp timestamp,
current_step integer,
last_answer integer
);
create table simulation_choices (
session_id integer not null references simulation_sessions(sessionid),
step_id integer not null references simulation_steps(step_id),
component_id integer not null references components(component_id)
);
create table comp_conflicts (
comp1 integer not null,
comp2 integer not null,
reason varchar(512)
);
| mwlang@cybrains.net | Guest | Login | Home |