Code Monkey home page Code Monkey logo

09-sql-joins-relations's Introduction

Lab 09: SQL Joins and Relations

Today we introduced Joins and Relations, which we'll be implementing using SQL.

Your lab TODOs today will require you to write SQL queries and add associated data to those queries in the server.js file, though you need to have an understanding at this point as to how everything is working together to accomplish our full functionality.

Pairs

  • Meryl / Joe
  • Haley / Michele
  • Pierre / John
  • Mark / Andrew
  • Stephanie / Anwar

Submission Instructions

When you are finished with lab, follow these steps to submit your work. Create one Pull Request (aka: "PR") from your Forked repo to the CF repo with your changes, and you'll each submit that same PR link in Canvas.

  1. Ensure that all your local changes are committed, and pushed to your origin repo.
  2. Visit the origin repo on github.com, and ensure that all of your completed work has been merged to master via Pull Requests within your repo.
  3. Create a new PR from your Fork to the CF repo and ensure the branches look correct.
  4. Fill in the template based on the text box prompts:
  5. Write a good descriptive summary of your changes: 1. Be sure to include how much time you spent on it, and who you worked with. 1. Briefly reflect on and summarize your process.
  6. When you create the PR, it will have a unique URL. Copy this link, share with your partner, and paste it into the assignment submission form in Canvas. Both the driver and the navigator will submit the same PR link.

Learning Objectives

  • Understand how objects in a database can be interrelated with foreign keys
  • Have familiarity with queries using SQL that select data from across multiple tables
  • Have familiarity with different relationships in database tables

Resources


Getting started (DO THIS AFTER CLONING YOUR FORK)

  1. cd starter-code to change dirs to the starter code directory
  2. Ensure that you have your postgres server running, using the alias that we set up in lecture: pgstart
  • You will need to drop the table that we created yesterday in postgres!
  • To do so, start postgres in the terminal using the psql command
  • Once you're in the postgres shell, enter DROP TABLE articles; to remove the table from your local DB
  • Leave the shell open so you can check on your new tables in the upcoming setup steps!
  1. In a new terminal window, start your node server: node server.js. The loadDB() function will run and create and populate the tables for you.
  2. In your postgres shell:
  • Run select count(*) from articles;
    • The output should read that you now have 250 records in the articles table.
  • Then run select * from authors;
    • The output should read each of the five author records to your with their respective data

You're ready to go!

--

Feature Tasks

Don't forget to set your conString!

User Stories: MVP

  • As a developer, I want article data to persist with SQL, so that I can store more, faster and have more query flexibility.
  • As a developer, I want to be able to verify that the CRUD routes on my application are all properly functional.

This means you'll want to be able to do full CRUD on articles in the database. You'll have to use SQL to make a table for articles (and clear out the table for troubleshooting), with a class-level method attached to the constructor function (because it does not apply to any single instance). Then teach each article instance how to write or update itself to the database, or delete itself, via instance methods (available for use as needed in the code).

Crucially, you'll need to trace through the app logic, and all those callback functions to determine WHEN is the right time to load data, or convert JSON.

Look through the TODOs, which signify areas of the code with varying levels of completeness, and focus initially on writing correct SQL. Once you complete the TODOs, follow the instructions in the adjacent CRUD-testing.md doc to verify that everything works.


Rubric

Criteria Pts
Meets all Assignment Reqs 6
Uses idiomatic code style 3
Follows proper Git workflow 1
Total 10

09-sql-joins-relations's People

Contributors

sajoy avatar merylturner avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.