Hướng dẫn how do you create a relationship between two tables in mysql? - làm thế nào để bạn tạo mối quan hệ giữa hai bảng trong mysql?
Bạn phải tự hỏi mình là mối quan hệ 1 đến 1 hay 1 trong số nhiều mối quan hệ. Đó là, mọi tài khoản đều có khách hàng và mọi khách hàng đều có tài khoản. Hoặc sẽ có khách hàng mà không có tài khoản. Câu hỏi của bạn ngụ ý sau này. Show
Nếu bạn muốn có mối quan hệ nghiêm ngặt 1 đến 1, chỉ cần hợp nhất hai bảng.
Trong trường hợp khác, cách chính xác để tạo mối quan hệ giữa hai bảng là tạo bảng mối quan hệ.
Sau đó, nếu bạn có khách hàng_id và muốn thông tin tài khoản, bạn tham gia vào khách hàng và tài khoản:
Vì lập chỉ mục này sẽ nhanh chóng bị mù. Bạn cũng có thể tạo một chế độ xem cung cấp cho bạn hiệu ứng của bảng khách hàng kết hợp trong khi giữ chúng riêng biệt Cho đến nay trong cuốn sách này, tất cả các công việc chúng tôi đã thực hiện với một bảng cơ sở dữ liệu duy nhất. Phần lớn các cơ sở dữ liệu bạn sẽ làm việc với tư cách là nhà phát triển sẽ có nhiều hơn một bảng và các bảng đó sẽ được kết nối với nhau theo nhiều cách khác nhau để hình thành các mối quan hệ bảng. Trong chương này, chúng tôi sẽ khám phá lý do có nhiều bảng trong cơ sở dữ liệu, hãy xem cách xác định mối quan hệ giữa các bảng khác nhau và phác thảo các loại mối quan hệ bảng khác nhau có thể tồn tại. Bình thường hóaTại thời điểm này, bảng 7 của chúng tôi không cần phải giữ nhiều dữ liệu đó cho mỗi người dùng trong hệ thống của chúng tôi. Nó lưu trữ tên cho người dùng, cho dù tài khoản của họ có được bật hay không, khi họ đăng nhập lần cuối và ID để xác định từng bản ghi người dùng. Trong thực tế, các yêu cầu của ứng dụng của chúng tôi sẽ có nghĩa là chúng tôi cần lưu trữ nhiều dữ liệu hơn thế. Ứng dụng của chúng tôi sẽ được sử dụng để quản lý một thư viện sách SQL và cho phép người dùng kiểm tra các cuốn sách và cũng xem xét chúng.Để thực hiện một số yêu cầu này, chúng tôi chỉ có thể thử thêm nhiều cột vào bảng 7 của chúng tôi; Bảng kết quả có thể trông hơi như sau:Wow, đó là rất nhiều thông tin trong một bảng! Cũng có những vấn đề khác ở đây, chẳng hạn như sao chép dữ liệu (thường được gọi là 'dự phòng'). Đối với mỗi cuốn sách mà người dùng kiểm tra, chúng tôi phải lặp lại tất cả dữ liệu người dùng trong bảng của chúng tôi. Đó là một câu chuyện tương tự với dữ liệu sách, nếu có nhiều hơn một người kiểm tra một cuốn sách, chẳng hạn như với 'cuốn sách SQL thứ hai của tôi', chúng ta phải lặp lại tiêu đề sách, tác giả, ISBN và ngày xuất bản. Việc sao chép dữ liệu theo cách này có thể dẫn đến các vấn đề với tính toàn vẹn dữ liệu. Ví dụ, điều gì sẽ xảy ra nếu đối với một trong những 'cuốn sách SQL thứ hai của tôi', thay vào đó, tiêu đề được nhập dưới dạng 'cuốn sách SQL thứ 2 của tôi', hoặc một lỗi đánh máy đã được thực hiện với ISBN trên một trong các hàng? Từ việc nhìn vào dữ liệu trong bảng, làm thế nào chúng ta biết phần dữ liệu nào là chính xác? Làm thế nào để chúng ta đối phó với tình huống này? Câu trả lời là phân chia dữ liệu của chúng tôi trên nhiều bảng khác nhau và tạo mối quan hệ giữa chúng. Quá trình phân tách dữ liệu theo cách này để loại bỏ sự trùng lặp và cải thiện tính toàn vẹn của dữ liệu được gọi là bình thường hóa. Chuẩn hóa là một chủ đề sâu sắc và có những bộ quy tắc phức tạp chỉ ra mức độ mà cơ sở dữ liệu được đánh giá là được chuẩn hóa. Những bộ quy tắc này, được gọi là 'các hình thức bình thường', nằm ngoài phạm vi của cuốn sách này; Bây giờ có hai điều quan trọng cần nhớ:
Chúng tôi biết rằng chúng tôi muốn chia dữ liệu cho ứng dụng của chúng tôi trên nhiều bảng, nhưng làm thế nào để chúng tôi quyết định những bảng đó nên là gì và mối quan hệ nào nên tồn tại giữa chúng? Khi trả lời các câu hỏi như thế này, nó thường hữu ích để thu nhỏ và nghĩ rằng ở mức độ trừu tượng cao hơn, và đây là nơi quá trình thiết kế cơ sở dữ liệu xuất hiện. Thiết kế cơ sở dữ liệuỞ cấp độ cao, quá trình thiết kế cơ sở dữ liệu liên quan đến việc xác định các thực thể để thể hiện các loại dữ liệu và mối quan hệ thiết kế khác nhau giữa các thực thể đó. Nhưng chúng ta có ý nghĩa gì với các thực thể, và làm thế nào để các thực thể khác nhau liên quan đến nhau? Hãy cùng tìm hiểu.entities to represent different sorts of data and designing relationships between those entities. But what do we mean by entities, and how do different entities relate to each other? Let's find out. Thực thểMột thực thể đại diện cho một đối tượng thế giới thực hoặc một tập hợp dữ liệu mà chúng tôi muốn mô hình hóa trong cơ sở dữ liệu của chúng tôi; Chúng ta thường có thể xác định những thứ này là danh từ chính của hệ thống mà chúng ta đang mô hình hóa. Đối với mục đích của cuốn sách này, chúng tôi sẽ cố gắng và giữ cho mọi thứ đơn giản và rút ra mối tương quan trực tiếp giữa một thực thể và một bảng dữ liệu duy nhất; Tuy nhiên, trong một cơ sở dữ liệu thực, dữ liệu cho một thực thể duy nhất có thể được lưu trữ trong nhiều bảng. Những thực thể nào chúng ta có thể xác định cho ứng dụng sách SQL của mình?
Bây giờ chúng tôi đã xác định các thực thể chúng tôi cần, chúng tôi có thể lập kế hoạch các bảng để lưu trữ dữ liệu cho từng thực thể. Những bảng đó có thể trông giống như thế này: Các mối quan hệChúng tôi đang có tiến bộ tốt với thiết kế cơ sở dữ liệu của chúng tôi. Chúng tôi đã quyết định về các thực thể chúng tôi muốn và đã hình thành một hình ảnh về các bảng chúng tôi cần, các cột trong các bảng đó và thậm chí các ví dụ về dữ liệu mà các cột đó sẽ giữ. Mặc dù thiếu một cái gì đó, và đó là mối quan hệ giữa các thực thể của chúng tôi. Nếu chúng ta nhìn vào sơ đồ của năm bảng của chúng ta, các bảng đều bị cô lập và không rõ ràng làm thế nào các bảng này nên liên quan đến nhau. Hãy đơn giản hóa các bảng của chúng tôi một chút và xác định rõ ràng một số mối quan hệ giữa chúng. Biểu đồ này cho thấy một đại diện trừu tượng của các thực thể khác nhau của chúng tôi và cả các mối quan hệ giữa chúng, (lưu ý: trong thực tế chúng ta có thể tưởng tượng rằng nhiều người dùng có thể chia sẻ cùng một địa chỉ; cấu trúc này được dành cho mục đích minh họa). Chúng ta có thể nghĩ về sơ đồ này như một sơ đồ mối quan hệ thực thể đơn giản hoặc ERD. ERD là một đại diện đồ họa của các thực thể và các mối quan hệ của chúng với nhau và là một công cụ thường được sử dụng trong thiết kế cơ sở dữ liệu.ERD. An ERD is a graphical representation of entities and their relationships to each other, and is a commonly used tool within database design. Có nhiều loại ERD khác nhau khác nhau từ khái niệm đến chi tiết và thường sử dụng các quy ước cụ thể như ký hiệu chân của Crow để mô hình hóa các mối quan hệ. Chúng tôi sẽ không đi sâu vào chi tiết của các loại khác nhau này, hoặc các quy ước họ sử dụng, trong cuốn sách này. Cho đến bây giờ, thật hữu ích khi chỉ cần nghĩ về một ERD như bất kỳ sơ đồ nào mô hình hóa mối quan hệ giữa các thực thể. Chìa khóaĐược rồi, vì vậy bây giờ chúng ta biết các bảng mà chúng ta cần và chúng ta cũng đã xác định các mối quan hệ nên tồn tại giữa các bảng đó trong ERD của chúng ta, nhưng làm thế nào để chúng ta thực sự thực hiện các mối quan hệ đó theo lược đồ bảng của chúng ta? Câu trả lời cho điều đó là sử dụng các phím. Trong một phần trước của cuốn sách này, chúng tôi đã xem xét một khía cạnh của lược đồ gọi là các ràng buộc và khám phá cách các ràng buộc hành động và làm việc với dữ liệu trong các bảng cơ sở dữ liệu của chúng tôi. Chìa khóa là một loại ràng buộc đặc biệt được sử dụng để thiết lập các mối quan hệ và tính độc đáo. Chúng có thể được sử dụng để xác định một hàng cụ thể trong bảng hiện tại hoặc để chỉ một hàng cụ thể trong một bảng khác. Trong chương này, chúng tôi sẽ xem xét hai loại khóa hoàn thành các vai trò cụ thể này: khóa chính và khóa nước ngoài.Primary Keys, and Foreign Keys. Chìa khóa chínhMột phần cần thiết trong việc thiết lập mối quan hệ giữa hai thực thể hoặc hai phần dữ liệu có thể xác định chính xác dữ liệu. Trong SQL, dữ liệu xác định duy nhất là rất quan trọng. Khóa chính là một định danh duy nhất cho một hàng dữ liệu.A Primary Key is a unique identifier for a row of data. Để hoạt động như một định danh duy nhất, một cột phải chứa một số dữ liệu và dữ liệu đó phải là duy nhất cho mỗi hàng. Nếu bạn đang nghĩ rằng những yêu cầu đó nghe rất giống các ràng buộc 0 và 1 của chúng tôi, bạn sẽ đúng; Trên thực tế, việc biến một cột A 2 về cơ bản tương đương với việc thêm các ràng buộc 0 và 1 vào cột đó.Cột 5 trong bảng 7 của chúng tôi có cả hai ràng buộc này và chúng tôi đã sử dụng cột đó trong nhiều truy vấn 7 của chúng tôi để xác định duy nhất các hàng; Chúng tôi đã có 5 một cách hiệu quả như là một khóa chính mặc dù chúng tôi không đặt nó một cách rõ ràng là khóa chính. Hãy làm điều đó ngay bây giờ:
Mặc dù bất kỳ cột nào trong bảng có thể có các ràng buộc 1 và 0 được áp dụng cho chúng, mỗi bảng chỉ có thể có một khóa chính. Đó là thực tế phổ biến cho khóa chính đó là một cột có tên 5. Nếu bạn nhìn vào các bảng khác mà chúng tôi đã xác định cho cơ sở dữ liệu của chúng tôi, hầu hết chúng đều có cột 5. Mặc dù một cột của bất kỳ tên nào cũng có thể đóng vai trò là khóa chính, nhưng sử dụng một cột có tên 5 rất hữu ích cho các lý do ghi nhớ và một quy ước phổ biến cũng vậy.Có thể xác định duy nhất một hàng dữ liệu trong bảng thông qua cột khóa chính của bảng đó chỉ là một nửa câu chuyện khi tạo mối quan hệ giữa các bảng. Nửa còn lại của câu chuyện này là đối tác của khóa chính, Key nước ngoài. Chìa khóa nước ngoàiKhóa nước ngoài cho phép chúng tôi liên kết một hàng trong một bảng với một hàng trong một bảng khác. Điều này được thực hiện bằng cách đặt một cột trong một bảng làm khóa ngoại và có cột tham chiếu cột đó cột chính của một bảng khác. Tạo mối quan hệ này được thực hiện bằng cách sử dụng từ khóa 4 trong biểu mẫu này:
Chúng tôi sẽ khám phá một số ví dụ cụ thể về cách sử dụng điều này khi chúng tôi xem xét việc thiết lập các loại mối quan hệ khác nhau sau này trong chương này, nhưng nói chung, bạn có thể nghĩ về tài liệu tham khảo này như tạo kết nối giữa các hàng trong các bảng khác nhau. Ví dụ, hãy tưởng tượng rằng chúng ta có hai bảng, một cái được gọi là 5 và một cái được gọi là 6. Cột 7 của bảng 6 là một khóa nước ngoài tham chiếu cột 5 của bảng 5.Trong sơ đồ trên, hàng 'màu đỏ' của bảng 5 của chúng tôi được liên kết với các hàng 'hình vuông' và 'ngôi sao' của bảng 6 của chúng tôi. Tương tự, 'màu xanh' được liên kết với 'tam giác' và 'màu xanh lá cây' với 'vòng tròn'. 'Orange' hiện không được liên kết với bất kỳ hàng nào trong bảng 6, nhưng có khả năng tạo ra một hiệp hội như vậy nếu chúng ta chèn một hàng vào 6 với 7 của 6.Bằng cách thiết lập tài liệu tham khảo này, chúng tôi đảm bảo tính toàn vẹn tham chiếu của một mối quan hệ. Tính toàn vẹn tham chiếu là sự đảm bảo rằng giá trị cột trong bản ghi phải tham chiếu một giá trị hiện có; Nếu không có lỗi thì bị ném. Nói cách khác, PostgreSQL sẽ không cho phép bạn thêm giá trị vào cột khóa nước ngoài của bảng nếu cột khóa chính của bảng mà nó tham khảo không chứa giá trị đó. Chúng tôi sẽ thảo luận về khái niệm này chi tiết hơn một chút sau này. Cách cụ thể trong đó khóa nước ngoài được sử dụng như một phần của lược đồ của bảng phụ thuộc vào loại mối quan hệ mà chúng tôi muốn xác định giữa các bảng của chúng tôi. Để thực hiện lược đồ đó một cách chính xác, thật hữu ích khi chính thức mô tả các mối quan hệ chúng ta cần mô hình hóa giữa các thực thể của chúng ta:
Các mối quan hệ thực thể được mô tả ở trên có thể được phân loại thành ba loại mối quan hệ:
Lần lượt nhìn vào họ. one-to-oneMột mối quan hệ một-một giữa hai thực thể tồn tại khi một thể hiện thực thể cụ thể tồn tại trong một bảng và nó chỉ có thể có một thể hiện thực thể liên quan trong một bảng khác. Ví dụ: Người dùng chỉ có thể có một địa chỉ và địa chỉ chỉ thuộc về một người dùng. A user can have only one address, and an address belongs to only one user. Ví dụ này là giả định: Trong thế giới thực, người dùng có thể có nhiều địa chỉ và nhiều người có thể sống ở cùng một địa chỉ. Trong thế giới cơ sở dữ liệu, loại mối quan hệ này được thực hiện như thế này: 5 đó là 2 của bảng 7 được sử dụng như cả 0 và 2 của bảng 2.
Thực hiện câu lệnh SQL ở trên sẽ tạo bảng 2 và tạo mối quan hệ giữa nó và bảng 7. Lưu ý các điều khoản 2 và 0 ở cuối câu lệnh 7. Hai mệnh đề này tạo ra các ràng buộc làm cho 8 là khóa chính của bảng 2 và cũng là khóa ngoại cho bảng 7.Hãy tiếp tục và thêm một số dữ liệu vào bảng của chúng tôi.
Cột 8 sử dụng các giá trị tồn tại trong cột 5 của bảng 7 để kết nối các bảng thông qua ràng buộc khóa nước ngoài mà chúng tôi vừa tạo.Tính toàn vẹn tham chiếuChúng ta sẽ đi đường vòng nhỏ ở đây để thảo luận về một chủ đề cực kỳ quan trọng khi xử lý các mối quan hệ bảng: tính toàn vẹn tham chiếu. Đây là một khái niệm được sử dụng khi thảo luận về dữ liệu quan hệ trong đó nói rằng các mối quan hệ bảng phải luôn nhất quán. Các RDBMS khác nhau có thể thực thi các quy tắc toàn vẹn tham chiếu khác nhau, nhưng khái niệm này là như nhau. Các ràng buộc mà chúng tôi đã xác định cho bảng 2 của chúng tôi thực thi mối quan hệ một-một mà chúng tôi muốn giữa bảng 7 của chúng tôi, theo đó người dùng chỉ có thể có một địa chỉ và địa chỉ phải có một và chỉ một người dùng. Đây là một ví dụ về tính toàn vẹn tham chiếu. Hãy trình bày cách thức hoạt động của nó.Điều gì xảy ra nếu chúng ta cố gắng thêm một địa chỉ khác cho người dùng đã có một địa chỉ?
0Lỗi trên xảy ra vì chúng tôi đang cố gắng chèn một giá trị 6 vào cột 8 khi giá trị như vậy đã tồn tại trong cột đó. Hạn chế 1 trên cột ngăn chúng ta làm như vậy.Làm thế nào nếu chúng ta cố gắng thêm một địa chỉ cho người dùng không tồn tại? 1 2Ở đây chúng tôi nhận được một lỗi khác. Ràng buộc 0 trên cột 8 ngăn chúng ta thêm giá trị 1 vào cột đó vì giá trị đó không có trong cột 5 của bảng 7.Nếu bạn đang tự hỏi tại sao chúng ta có thể thêm người dùng mà không có địa chỉ nhưng không thể thêm địa chỉ mà không có người dùng, điều này là do phương thức của mối quan hệ giữa hai thực thể. Đừng lo lắng về chính xác điều này có nghĩa là gì bây giờ, chỉ cần nghĩ về nó như một khía cạnh khác của các mối quan hệ thực thể. Mệnh đề xóa trênBạn có thể đã nhận thấy trong câu lệnh tạo bảng cho bảng 2 của chúng tôi, định nghĩa 0 bao gồm một mệnh đề đọc 6. Thêm mệnh đề này và đặt nó thành 7 về cơ bản có nghĩa là nếu hàng được tham chiếu sẽ bị xóa, hàng tham chiếu, nó cũng bị xóa. Có những lựa chọn thay thế cho 7, chẳng hạn như 9 hoặc 0 thay vì xóa hàng tham chiếu sẽ đặt một giá trị mới trong cột thích hợp cho hàng đó.Xác định những việc cần làm trong các tình huống mà bạn xóa một hàng được tham chiếu bởi một hàng khác là một quyết định thiết kế quan trọng và là một phần của khái niệm duy trì tính toàn vẹn tham chiếu. Nếu chúng tôi không đặt ra các điều khoản như vậy, chúng tôi sẽ để lại quyết định làm gì với RDBM mà chúng tôi đang sử dụng. Trong trường hợp của PostgreSQL, nếu chúng ta cố gắng xóa một hàng đang được tham chiếu bởi một hàng trong một bảng khác và chúng ta không có mệnh đề 1 cho tài liệu tham khảo đó, thì sẽ bị lỗi.One-to-ManyĐược rồi, thời gian để trở lại với các loại mối quan hệ bàn khác nhau của chúng tôi với một cái nhìn một-nhiều. Mối quan hệ một-nhiều tồn tại giữa hai thực thể nếu một thể hiện thực thể trong một trong các bảng có thể được liên kết với nhiều hồ sơ (các trường hợp thực thể) trong bảng khác. Mối quan hệ ngược lại không tồn tại; nghĩa là, mỗi thể hiện thực thể trong bảng thứ hai chỉ có thể được liên kết với một thể hiện thực thể trong bảng thứ nhất. Ví dụ: Một đánh giá chỉ thuộc về một cuốn sách. Một cuốn sách có nhiều đánh giá. A review belongs to only one book. A book has many reviews. Hãy thiết lập dữ liệu cần thiết. Trước tiên hãy tạo bảng của chúng tôi 3Các câu lệnh tạo bảng này cho các bảng 2 và 3 của chúng tôi khá giống với ví dụ trước của chúng tôi. Tuy nhiên, có một sự khác biệt chính đáng để chỉ ra trong tuyên bố cho bảng 3 của chúng tôi: Tuy nhiên:
Lưu ý rằng khóa nước ngoài 9 có ràng buộc 0. Nói chung, các chìa khóa nước ngoài ở phía "nhiều" của mối quan hệ một-nhiều không nên cho phép 8. Trong trường hợp này, không có ý nghĩa gì khi có một đánh giá không gắn liền với một cuốn sách.Bây giờ chúng tôi đã tạo các bảng 2 và 3 của chúng tôi, hãy thêm một số dữ liệu cho chúng. 4Thứ tự chúng tôi thêm dữ liệu là quan trọng ở đây. Vì một cột trong 3 Tài liệu tham khảo dữ liệu trong 2, trước tiên chúng tôi phải đảm bảo rằng dữ liệu tồn tại trong bảng 2 để chúng tôi tham khảo.Cũng giống như mối quan hệ ____ 17/ 2, 0 tạo ra mối quan hệ giữa bảng 3 và bảng 2. Tuy nhiên, không giống như mối quan hệ ____ 17/ 2, cả sách và người dùng đều có thể có nhiều đánh giá. Ví dụ, giá trị 5 của 12 cho 13 xuất hiện hai lần trong cột 9 của bảng 3.Trong một cơ sở dữ liệu thực, bảng 3 của chúng tôi có thể cũng sẽ có một tham chiếu khóa nước ngoài cho cột 5 trong bảng 7 thay vì có dữ liệu loại người dùng trực tiếp trong cột 19. Chúng tôi thiết lập bảng theo cách này cho ví dụ của chúng tôi vì chúng tôi muốn tập trung vào loại mối quan hệ một-nhiều. Nếu chúng tôi đã thêm một chìa khóa nước ngoài như vậy vào 3, chúng tôi thực sự sẽ thiết lập mối quan hệ nhiều đến nhiều giữa 2 và 7, đó là những gì chúng tôi sẽ xem xét tiếp theo.Many-to-ManyMột mối quan hệ nhiều-nhiều tồn tại giữa hai thực thể nếu đối với một trường hợp thực thể có thể có nhiều hồ sơ trong bảng khác và ngược lại. Ví dụ: Người dùng có thể kiểm tra nhiều sách. Một cuốn sách có thể được kiểm tra bởi nhiều người dùng (theo thời gian). A user can check out many books. A book can be checked out by many users (over time). Để thực hiện loại mối quan hệ này, chúng tôi cần giới thiệu một bảng thứ ba, tham chiếu chéo,. Bảng này giữ mối quan hệ giữa hai thực thể, bằng cách có hai ____50, mỗi thực phẩm tham khảo khóa chính của một trong các bảng mà chúng tôi muốn tạo mối quan hệ này. Chúng tôi đã có bảng 2 và 7 của chúng tôi, vì vậy chúng tôi chỉ cần tạo bảng tham chiếu chéo: 26.two 0s, each of which references the PRIMARY KEY of one of the tables for which we want to create this relationship. We already have our 2 and 7 tables, so we just need to create the cross-reference table: 26.Ở đây, cột 8 trong 26 tham chiếu cột 5 trong 7 và cột 9 trong 26 tham chiếu cột 5 trong 2. Mỗi hàng của bảng 26 sử dụng hai khóa nước ngoài này để tạo mối liên hệ giữa các hàng 7 và 2.Chúng ta có thể thấy trên hàng đầu tiên của 26, người dùng có 5 của 6 được liên kết với cuốn sách với 5 của 6. Ở hàng thứ hai, cùng một người dùng cũng được liên kết với cuốn sách với 5 của 12. Ở hàng thứ ba, một người dùng khác, với 5 của 12 được liên kết với cùng một cuốn sách từ hàng trước. Ở hàng thứ tư, người dùng có 5 của 48 được liên kết với cuốn sách với 5 là 6.Đừng lo lắng nếu bạn không hoàn toàn hiểu điều này ngay lập tức. Một thời gian ngắn, chúng tôi sẽ mở rộng về các hiệp hội này trông như thế nào về dữ liệu trong 7 và 2. Tuy nhiên, trước tiên, hãy tạo bảng 26 của chúng tôi và thêm một số dữ liệu vào đó. 5Bạn có thể nhận thấy rằng bảng của chúng tôi chứa một vài cột khác 54 và 55. Mặc dù những điều này không cần thiết để tạo ra mối quan hệ giữa bảng 7 và 2, nhưng chúng có thể cung cấp bối cảnh bổ sung cho mối quan hệ đó. Các thuộc tính như ngày thanh toán hoặc ngày trả lại không liên quan cụ thể đến người dùng hoặc cụ thể với sách, mà là sự liên kết giữa người dùng và một cuốn sách.Loại ngữ cảnh bổ sung này có thể hữu ích trong logic kinh doanh của ứng dụng bằng cơ sở dữ liệu của chúng tôi. Ví dụ: để ngăn chặn nhiều người dùng cố gắng kiểm tra cùng một cuốn sách cùng một lúc, ứng dụng có thể xác định sách nào hiện đang được kiểm tra bằng cách truy vấn những cuốn có giá trị trong cột 54 của bảng 26 nhưng trong đó 55 được đặt thành 8.Cũng như các mối quan hệ một-nhiều, các khóa nước ngoài trong các mối quan hệ nhiều đến nhiều không nên cho phép các mục 8. Do đó, cả 8 và 9 đều có ràng buộc 0. Trong trường hợp này, không có ý nghĩa gì khi có hàng thanh toán cho người dùng nếu họ chưa kiểm tra một cuốn sách cụ thể, cũng không có ý nghĩa gì khi có một hàng cho một cuốn sách chưa được kiểm tra bởi một người dùng cụ thể.Bây giờ chúng tôi đã tạo 26, chúng tôi có thể thêm dữ liệu sẽ tạo ra các liên kết giữa các hàng trong 7 và 2. 6Chúng ta hãy xem dữ liệu này trông như thế nào về mối quan hệ giữa các bảng. Ở đây chúng ta có thể thấy rằng giá trị 5 của 6 từ bảng 7 cho 'John Smith' xuất hiện hai lần trong cột 8 của 26, nhưng bên cạnh các giá trị khác nhau cho 9 ( 6 và 12); Điều này thỏa mãn 'người dùng có thể kiểm tra nhiều cuốn sách' của mối quan hệ. Tương tự, chúng ta có thể thấy rằng giá trị 5 của 12 từ bảng 2 cho 'cuốn sách SQL thứ hai của tôi' xuất hiện hai lần trong cột 80 của 26, bên cạnh các giá trị khác nhau cho 8 ( 6 và 12); Điều này đáp ứng 'một cuốn sách có thể được kiểm tra bởi nhiều người dùng trong mối quan hệ.Có lẽ chúng ta có thể nghĩ về một mối quan hệ nhiều đến nhiều khi kết hợp hai mối quan hệ một-nhiều; Trong trường hợp này giữa 26 và 7, và giữa 26 và 2.Bản tóm tắtTrong chương này, chúng tôi đã đề cập đến một số chủ đề khác nhau liên quan đến các mối quan hệ bảng:
Tóm lại, đây là danh sách các mối quan hệ phổ biến mà bạn sẽ gặp khi làm việc với SQL:
Trước đó trong cuốn sách này, chúng tôi đã xem xét cách truy vấn dữ liệu trong bảng cơ sở dữ liệu bằng cách sử dụng 7. Bây giờ dữ liệu của chúng tôi được phân chia trên nhiều bảng, làm thế nào chúng tôi có thể cấu trúc các truy vấn của mình nếu chúng tôi cần dữ liệu từ nhiều bảng cùng một lúc? Để làm điều này, chúng tôi cần tham gia các bảng của chúng tôi với nhau. Trong chương tiếp theo, chúng tôi sẽ khám phá cách thực hiện chính xác điều đó bằng cách giới thiệu một từ khóa SQL khác, 90.
Làm thế nào để bạn tạo mối quan hệ giữa hai bảng?Tạo mối quan hệ bảng bằng cách sử dụng cửa sổ Mối quan hệ. Trên tab Công cụ cơ sở dữ liệu, trong nhóm Mối quan hệ, nhấp vào các mối quan hệ. Trên tab Thiết kế, trong nhóm Mối quan hệ, nhấp vào Thêm bảng (hoặc hiển thị bảng trong Access 2013). Chọn một hoặc nhiều bảng hoặc truy vấn và sau đó nhấp vào Thêm.On the Database Tools tab, in the Relationships group, click Relationships. On the Design tab, in the Relationships group, click Add Tables (or Show Table in Access 2013). Select one or more tables or queries and then click Add.
Làm thế nào để bạn tạo mối quan hệ giữa hai bảng trong SQL?Sử dụng SQL Server Management Studio.. Trong Object Explorer, nhấp chuột phải vào bảng sẽ ở phía bên ngoài của mối quan hệ và chọn thiết kế. .... Từ menu thiết kế bảng, chọn mối quan hệ. .... Trong hộp thoại Mối quan hệ Key-Key, chọn Thêm. .... Chọn mối quan hệ trong danh sách mối quan hệ đã chọn .. Làm thế nào để bạn tạo mối quan hệ giữa hai bảng trong MySQL Workbench?Làm thế nào để tạo mối quan hệ trong MySQL Workbench.. Tạo một mô hình cơ sở dữ liệu (tạo ra một mô hình mới hoặc kỹ sư đảo ngược một cơ sở dữ liệu hiện có). Xem mô hình cơ sở dữ liệu, nhấp đúp vào bảng đầu tiên của mối quan hệ .. Ngăn dưới cùng sẽ mở với các chi tiết bảng .. Làm thế nào để bạn kết nối các bảng trong mysql?Equi-join (hay còn gọi là tham gia bên trong) Công bằng tham gia các hàng từ hai hoặc nhiều bảng dựa trên sự so sánh giữa một cột cụ thể trong mỗi bảng.Cú pháp cho phương pháp này như sau: Chọn Cột_Names từ Bảng1, Bảng2 trong đó (Bảng1. Cột = Bảng2.
The Equi-Join joins rows from two or more tables based on comparisons between a specific column in each table. The syntax for this approach is as follows: SELECT column_names FROM table1, table2 WHERE (table1. column = table2. |