Tại sao chúng ta không thể có nhiều đường dẫn tầng?


8

Bạn có thể thấy rằng nhiều câu hỏi đã được hỏi về nhiều đường dẫn tầng . Ví dụ:

/programming/851625/forign-key-constraint-may-cause- Motorcycle-or-mult Môn-fascade-path

/programming/6065501/multipl-cascade-delete-path-in-many-many-relationship-ef-4-1

/programming/27613117/int Giới thiệu-forign-key-constraint-may-cause-Motorcycle-or-mult Môn-fascade-path-s

Tuy nhiên, từ những gì tôi thấy và hiểu, hoàn toàn ổn khi bạn muốn xóa một bản ghi con trên nhiều và không chỉ là một điều kiện xóa các bản ghi chính liên quan.

Trong khi trong một câu hỏi, người ta nói rằng SQL Server cố gắng an toàn bằng cách ngăn chặn điều này xảy ra, tôi thực sự không hiểu rằng điều gì có thể sai nếu chúng ta có nhiều đường dẫn tầng, và vấn đề gì nó ngăn cản để đảm bảo an toàn ?

Tôi hy vọng ai đó có thể giải thích điều đó với tôi, bằng những từ đơn giản và đơn giản, tốt nhất là sử dụng các ví dụ về những gì có thể sai trong trường hợp có nhiều đường dẫn tầng.

Câu trả lời:


6

Câu hỏi "điều gì có thể sai" chỉ có thể được trả lời bởi các nhà phát triển tại Microsoft hoặc Sybase. Khi có nhiều đường dẫn xếp tầng vào cùng một bản ghi, có thể mã có thể cố gắng xóa nó nhiều lần. Nếu nó không được xây dựng để đối phó với khả năng bản ghi bị xóa đã bị xóa, nó có thể gây ra lỗi. Rõ ràng vấn đề này thực sự tồn tại (hoặc được cho là tồn tại!), Vì vậy thay vì khắc phục nó, việc triển khai đã tránh được nó bằng cách ngăn chặn định nghĩa về các đường dẫn tầng trùng lặp. Đây rõ ràng là một cách rút gọn, bởi vì các DBMS khác không có vấn đề gì với tình huống này.


2
bạn nghĩ rằng sau 20 năm SQL Server, họ sẽ khắc phục vấn đề này ...
Jeremy Holovacs
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.