Tôi có một tiền tố trie. Lược đồ được đề nghị để biểu diễn cấu trúc này trong một cơ sở dữ liệu quan hệ là gì? Tôi cần kết hợp chuỗi con để duy trì hiệu quả.Làm thế nào để bạn lưu trữ một trie trong một cơ sở dữ liệu quan hệ?
Trả lời
Thiết kế Materialized Path như thế nào?
CREATE TABLE trie (
path VARCHAR(<maxdepth>) PRIMARY KEY,
...other attributes of a tree node...
);
Để lưu trữ một từ như "stackoverflow":
INSERT INTO trie (path) VALUES
('s'), ('st'), ('sta'), ('stac'), ('stack'),
('stacko'), ('stackov'), ('stackove'), ('stackover'),
('stackover'), ('stackoverf'), ('stackoverflo'),
('stackoverflow');
Đường dẫn cụ thể hóa trong cây là chuỗi tiền tố của các nhân vật chính nó. Điều này cũng tạo thành khóa chính. Kích thước của cột VARCHAR là độ sâu tối đa của Trie bạn muốn lưu trữ.
Tôi không thể nghĩ ra bất cứ điều gì đơn giản và đơn giản hơn thế nữa, đồng thời bảo quản lưu trữ và tìm kiếm chuỗi hiệu quả.
Liên kết chuyển hướng đến không có gì quan tâm. Đây là phiên bản được lưu trữ: http://web.archive.org/web/20071019044908/http://www.dbazine.com/oracle/or-articles/tropashko4 – Howie
@Howie, cảm ơn, tôi đã trả lời câu hỏi này 5.5 năm trước, vì vậy nó không phải là một bất ngờ mà một số liên kết đi cũ. –
Bạn có thể cho ví dụ về cách bạn truy vấn bảng này để nói "st" và có nhiều từ như "stackoverflowone" – zengr
Có tổ chức nào của bạn có mối quan hệ với bất kỳ tổ chức nào khác không? Nếu không, đó là, không quan hệ, một bảng băm với một serialization sẽ làm điều đó.
- 1. neo4j - đồ thị cơ sở dữ liệu cùng với một cơ sở dữ liệu quan hệ?
- 2. Làm cách nào để lưu trữ quan hệ một đến nhiều trong cơ sở dữ liệu sql của tôi? (MySQL)
- 3. Làm thế nào để lưu trữ một cơ sở dữ liệu bên trong Arduino?
- 4. Làm thế nào để lưu trữ một cây trong cơ sở dữ liệu SQL
- 5. Lưu trữ dữ liệu tĩnh trong một mảng hoặc trong một cơ sở dữ liệu?
- 6. cách tốt nhất để lưu trữ mối quan hệ người dùng 1: 1 trong cơ sở dữ liệu quan hệ
- 7. Cơ sở dữ liệu dựa trên tài liệu nào có lợi thế hơn một cơ sở dữ liệu quan hệ?
- 8. Làm thế nào để lưu trữ dữ liệu đồ thị trong cơ sở dữ liệu?
- 9. Python, lưu trữ một dict trong cơ sở dữ liệu
- 10. Làm thế nào để thực hiện một siêu lớp, mối quan hệ lớp phụ trong cơ sở dữ liệu?
- 11. lưu trữ hình ảnh trong cơ sở dữ liệu hoặc trong một tệp hệ thống?
- 12. Hệ thống cơ sở dữ liệu không quan hệ
- 13. Bạn có lưu trữ dữ liệu nhị phân trong cơ sở dữ liệu hoặc trong hệ thống tệp không?
- 14. SQL Server: Làm thế nào để biết cơ sở dữ liệu là một cơ sở dữ liệu hệ thống?
- 15. Làm thế nào để lưu trữ ngày tháng rất cũ trong cơ sở dữ liệu?
- 16. Lưu trữ một tệp trong cơ sở dữ liệu trái ngược với hệ thống tệp?
- 17. Làm thế nào để lưu trữ thông tin "access_control" của Symfony2 trong cơ sở dữ liệu?
- 18. Làm thế nào để duy trì cấu trúc dữ liệu biểu đồ trong cơ sở dữ liệu quan hệ?
- 19. Trình bày thứ tự trong một cơ sở dữ liệu quan hệ
- 20. Làm cách nào để lưu trữ đúng các mối quan hệ dữ liệu với Bộ lưu trữ bảng Microsoft Azure?
- 21. Làm thế nào để thiết kế mối quan hệ nhiều-nhiều trong một cơ sở dữ liệu đối tượng?
- 22. Làm cách nào để tạo kiểu tùy chỉnh trong cơ sở dữ liệu quan hệ?
- 23. Làm thế nào để lưu trữ cảnh báo MySQL trong cơ sở dữ liệu?
- 24. Làm thế nào để lưu trữ các đối tượng TimeZoneInfo trong cơ sở dữ liệu?
- 25. Lưu trữ kích thước tệp trong cơ sở dữ liệu
- 26. Làm thế nào để lưu trữ năm tháng trong cơ sở dữ liệu?
- 27. làm thế nào để thay đổi công cụ lưu trữ cơ sở dữ liệu trong phpmyadmin?
- 28. Làm thế nào để lưu trữ hơn 255 char trong cơ sở dữ liệu MySQL?
- 29. Làm thế nào để lưu trữ Euro Symbol trong cơ sở dữ liệu mysql?
- 30. Hadoop là cơ sở dữ liệu lưu trữ tài liệu
Có, trie không phải cây. Xem http://en.wikipedia.org/wiki/Trie – dkretz
Bạn có đang lưu trữ và truy xuất trie đến/từ DB được sử dụng trong mã của bạn không? Vì tìm kiếm DB có các công cụ tích hợp như lập chỉ mục toàn văn (dựa trên các nguyên tắc tương tự) –