PostgreSQLIntermediate
Relationships — one-to-many, many-to-many
foreign key দিয়ে relation — ১:N এবং N:M-এর সঠিক pattern।
5টি অংশবাংলা ভাষায়
| Relation | কীভাবে |
|---|---|
| 1 : N (user → orders) | N টেবিলে FK |
| N : M (product ↔ tag) | bridge table |
| 1 : 1 (user → profile) | বিরল; FK+UNIQUE |
one-to-many: orders → userssql
sql
CREATE TABLE orders (
id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
user_id bigint NOT NULL REFERENCES users(id),
total numeric(10,2) NOT NULL,
status text NOT NULL DEFAULT 'pending',
created_at timestamptz DEFAULT now()
);many-to-many: order × product (bridge)sql
sql
CREATE TABLE order_items (
order_id bigint NOT NULL REFERENCES orders(id),
product_id bigint NOT NULL REFERENCES products(id),
qty integer NOT NULL,
price numeric(10,2) NOT NULL,
PRIMARY KEY (order_id, product_id)
);bridge table-ই N:M-এর সমাধান — দুইটি FK, আর জোড়ার নিজস্ব attribute (qty, price) ওই table-এ।
ON DELETE-এর কথা
REFERENCES users(id) ON DELETE CASCADE — child-ও মুছে যায়; RESTRICT/SET NULL বিকল্প। ডিফল্ট behavior নিয়ে পরে (টপিক ২৪)।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।