⊗ppPmDOLT 381 of 447 menu

Liên kết các bảng trong cơ sở dữ liệu

Giả sử chúng ta có một bảng với tên người dùng và các thành phố mà họ sống:

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

Nhược điểm của bảng này là một thành phố lặp lại nhiều lần cho các người dùng khác nhau. Điều này dẫn đến một số vấn đề.

Thứ nhất, việc lặp lại liên tục dẫn đến việc cơ sở dữ liệu bắt đầu chiếm nhiều không gian hơn.

Thứ hai, khá bất tiện khi thực hiện các thao tác với các thành phố. Ví dụ, chúng ta muốn hiển thị danh sách tất cả các thành phố. Không thể làm điều này một cách đơn giản. Chúng ta sẽ phải lấy tất cả người dùng cùng với các thành phố của họ, sau đó loại bỏ các bản trùng lặp từ các thành phố đã lấy và chỉ khi đó chúng ta mới nhận được danh sách này.

Và bây giờ hãy tưởng tượng rằng trong cơ sở dữ liệu có 10000 người dùng từ 10 thành phố - chỉ để lấy 10 thành phố này chúng ta sẽ phải lấy toàn bộ bảng với số lượng hàng khổng lồ - điều này sẽ dẫn đến một thao tác rất chậm với việc lãng phí tài nguyên vô nghĩa.

Giải pháp cho vấn đề

Cần chia bảng của chúng ta thành hai: một bảng sẽ lưu trữ các thành phố, và bảng kia - người dùng. Đồng thời, trong bảng người dùng sẽ có cột city_id, cột này sẽ tham chiếu đến thành phố của người dùng.

Vậy, hãy tạo hai bảng. Bảng với các thành phố:

cities
id name
1 city1
2 city2
3 city3

Bảng với người dùng:

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

Giả sử bạn cần lưu trữ các sản phẩm (tên, giá, số lượng) và danh mục của những sản phẩm này. Hãy mô tả cấu trúc lưu trữ.

Giả sử bạn cần lưu trữ các con sông và biển, nơi các con sông này đổ vào. Hãy mô tả cấu trúc lưu trữ.

Giả sử bạn cần lưu trữ các thành phố và quốc gia, nơi chúng tọa lạc. Hãy mô tả cấu trúc lưu trữ.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối