Relational Design
Notation
- Primary keys are bolded and underlined.
- Foreign keys are marked with
*at the end of their name and the referenced entity is written in parentheses. - Required (not optional) attributes are bolded.
Tables
- Users (id, username, password, email)
- Admins (user_id* (Users))
- Components (id, name, brand, price, type, img_url)
- CPU (component_id* (Components), socket, cores, threads, base_clock, boost_clock, tdp)
- GPU (component_id* (Components), vram, tdp, base_clock, boost_clock, chipset, length)
- Memory (component_id* (Components), type, speed, capacity, modules)
- Storage (component_id* (Components), type, capacity, form_factor)
- Power_Supply (component_id* (Components), type, wattage, form_factor)
- Motherboard (component_id* (Components), socket, chipset, form_factor, ram_type, num_ram_slots, max_ram_capacity, pci_express_slots)
- PC_Case (component_id* (Components), cooler_max_height, gpu_max_length)
- Case_Storage_Form_Factors (case_id*(PC_Case), form_factor, num_slots)
- Case_PS_Form_Factors (case_id*(PC_Case), form_factor)
- Case_Mobo_Form_Factors (case_id*(PC_Case), form_factor)
- Cooler (component_id* (Components), type, height, max_tdp_supported)
- Cooler_CPU_Sockets (cooler_id*(Cooler), socket)
- Memory_Card (component_id* (Components), num_slots, interface)
- Optical_Drive (component_id* (Components), form_factor, type, interface, write_speed, read_speed)
- Sound_Card (component_id* (Components), sample_rate, bit_depth, chipset, interface, channel)
- Cables (component_id* (Components), length_cm, type)
- Network_Adapter (component_id* (Components), wifi_version, interface, num_antennas)
- Network_Card (component_id* (Components), num_ports, speed, interface)
- Build (id, user_id* (Users), name, created_at, description, total_price, is_approved)
- Build_Component (build_id*(Build), component_id*(Component))
- Favorite_Build (build_id*(Build), user_id*(Users))
- Rating_Build (build_id*(Build), user_id*(Users), value)
- Review (id, build_id* (Build), user_id* (Users), content, created_at)
- Suggestions (id, user_id* (Users), admin_id* (Admins), link, admin_comment, description, status, component_type)
DDL script for creating the database schema
DML script for filling tables with data
Relational diagram
Last modified
4 days ago
Last modified on 12/24/25 21:13:25
Attachments (3)
- relational-design.png (240.6 KB ) - added by 4 days ago.
- schema_creation.sql (8.4 KB ) - added by 4 days ago.
- data_load.sql (23.8 KB ) - added by 3 days ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.

