การเชื่อมโยงตารางในฐานข้อมูลด้วย Python

สมมติว่าเรามีตารางเก็บชื่อผู้ใช้ และเมืองที่พวกเขาอาศัยอยู่:

users
id name city
1 user1 city1
2 user2 city1
3 user3 city2
4 user4 city1
5 user5 city3
6 user6 city2

ข้อเสียของตารางนี้คือ เมืองเดียวกันถูกทำซ้ำหลายครั้ง สำหรับผู้ใช้คนละคน สิ่งนี้นำไปสู่ ปัญหาบางประการ

ประการแรก การทำซ้ำซ้ำๆ นำไปสู่ การที่ฐานข้อมูลเริ่มกินพื้นที่ มากขึ้นมาก

ประการที่สอง ค่อนข้างไม่สะดวกในการดำเนินการ กับเมืองต่างๆ ตัวอย่างเช่น เราต้องการ แสดงรายชื่อเมืองทั้งหมดบนหน้าจอ ไม่สามารถทำได้ง่ายๆ เรา จะต้องดึงข้อมูลผู้ใช้ทั้งหมดพร้อมกับ เมืองของพวกเขา จากนั้นลบข้อมูลซ้ำของเมืองที่ได้ และถึงตอนนั้นเราจึงจะได้ รายชื่อนี้

และตอนนี้ลองนึกภาพว่าในฐานข้อมูลมีผู้ใช้ 10000 คน จาก 10 เมือง - เพื่อให้ได้เมือง 10 เมืองนี้ เราจะต้องดึงข้อมูลทั้ง ตารางที่มีจำนวนแถวมากมายมหาศาล - ผลลัพธ์คือการดำเนินการที่ช้ามากและ สิ้นเปลืองทรัพยากรอย่างไร้ความหมาย

การแก้ปัญหา

จำเป็นต้องแบ่งตารางของเราออกเป็นสองตาราง: ตารางหนึ่ง จะเก็บเมือง และตารางที่สอง - ผู้ใช้ ในขณะที่ในตารางผู้ใช้จะมีคอลัมน์ city_id ซึ่งจะ อ้างอิง ไปยังเมืองของผู้ใช้

เอาล่ะ เรามาสร้างสองตารางกัน ตาราง เมือง:

cities
id name
1 city1
2 city2
3 city3

ตารางผู้ใช้:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

งานปฏิบัติ

Задание 1

สมมติว่าคุณต้องการเก็บข้อมูลสินค้า (ชื่อ, ราคา, จำนวน) และหมวดหมู่ของสินค้าเหล่านี้ อธิบายโครงสร้างการจัดเก็บ

Задание 2

สมมติว่าคุณต้องการเก็บข้อมูลแม่น้ำและทะเล ที่แม่น้ำเหล่านี้ไหลลงไป อธิบายโครงสร้าง การจัดเก็บ

Задание 3

สมมติว่าคุณต้องการเก็บข้อมูลเมืองและประเทศ ที่เมืองเหล่านั้นตั้งอยู่ อธิบายโครงสร้าง การจัดเก็บ