uczę się podstaw baz danych.
Mam za zadanie modelowanie projektu w mysql workbench.
Mam jedno pytanie, na które nie mogę sobie odpowiedzieć.
Załóżmy mamy:
Kod
CREATE TABLE customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100)
);
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
amount DOUBLE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100)
);
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
amount DOUBLE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
Dwie tabele, które są połączone relacją.
Żeby wyciągnąć dane piszę zapytanie:
Kod
SELECT * FROM customers JOIN orders WHERE customers.customre_id = orders.customer_id;
Działa.
A teraz robię to samo zapytanie na tabelach, które nie mają relacji.
Kod
CREATE TABLE customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100)
);
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
amount DOUBLE
);
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100)
);
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
amount DOUBLE
);
I zapytanie też pokazuje ten sam wynik.
Moje pytanie po co tak właściwie są te ralacje?
Żeby skrypt szybciej zadziałał?