skye8-tech / openFolio-v1-functional

0 stars 11 forks source link

Setup Database Structure #2

Open andrew21-mch opened 4 weeks ago

andrew21-mch commented 4 weeks ago

Issue 2: Create MySQL Database and Tables (users, skills, projects, certifications)

Description:

The goal of this task is to collaboratively brainstorm and design the structure of the MySQL database that will power the portfolio website. The database will store user information, skills, projects, and certifications. Each intern should contribute ideas and propose the schema for the tables, including the necessary fields, data types, and relationships.

Steps to Complete:

  1. Brainstorm Table Structures:

    • Users Table: Propose the fields required to store user information, such as usernames, passwords, email addresses, and profile details. Discuss potential data types, constraints (e.g., uniqueness, not null), and any additional fields like timestamps.
    • Skills Table: Consider what information is needed to represent user skills. Discuss fields like skill name, proficiency level, and any relationships to the user.
    • Projects Table: Determine what data should be stored for each project, such as title, description, technologies used, project links, images, and their relationship to the user.
    • Certifications Table: Propose fields to capture certification details, including title, organization, date earned, description, and any associated files or images.
  2. Discuss Relationships:

    • One-to-Many Relationships: Consider the relationships between tables, such as one user having multiple skills, projects, and certifications. Discuss how to implement foreign keys to maintain these relationships.
    • Referential Integrity: Ensure that proposed foreign key relationships maintain referential integrity (e.g., a user cannot be deleted if they have associated skills, projects, or certifications).
  3. Document Proposals:

    • Each intern should document their proposed table structures, including field names, data types, constraints, and relationships.
    • Use diagrams or simple SQL syntax examples to illustrate ideas.
  4. Review and Finalize:

    • Collaboratively review all proposed structures, discussing the pros and cons of each.
    • Finalize the schema by consensus, ensuring that the structure is comprehensive and meets the needs of the application.
  5. Submit the Finalized Schema:

    • Document the final database schema, including all table definitions, fields, data types, constraints, and relationships.
    • Prepare a SQL script based on the finalized schema, ready for execution to create the database and tables.

Expected Outcome:

andrew21-mch commented 3 weeks ago

i also need the database design