2010-02-19 22 views

Trả lời

5

Tôi đồng ý với tất cả các câu trả lời. Wikis thường xử lý mọi chỉnh sửa dưới dạng bản ghi mới bên trong cơ sở dữ liệu.

Bạn có thể muốn xem toàn bộ số Layout of the MediaWiki database diagram, công cụ wiki phía sau Wikipedia.

Layout of the MediaWiki database diagram http://img22.imageshack.us/img22/3953/wikix.jpg

Lưu ý rằng toàn bộ văn bản của mỗi phiên bản được lưu trữ trong một lĩnh vực MEDIUMBLOB trong bảng text.

2

Vâng, đúng vậy. Nếu không, nó sẽ không thể nhìn thấy lịch sử trang đầy đủ, đó là những gì mong đợi từ một thực hiện Wiki.

3

Mọi mục nhập bên trong của wiki là một mục nhập mới bên trong cơ sở dữ liệu. Cách sửa đổi đó có thể được theo dõi. Đó là tất cả về cộng đồng và theo dõi. Phía sau hậu trường, cơ sở dữ liệu lưu trữ ngày giờ, các thay đổi được thực hiện, v.v.

1

Có.

...

Có vẻ hơi ngắn. Hãy chỉ nói rằng bạn phải lưu trữ bài viết gốc và sau đó chi tiết về từng thay đổi sau đó. Vì vậy, bạn có thể có một bảng Điều và một bảng Revision. Bằng cách đó bạn có thể quay trở lại trạng thái trước đó bất kỳ.

Tất nhiên thiết kế của các bảng, logic đằng sau tước văn bản sửa đổi từ bản gốc và lưu trữ riêng biệt này là khá phức tạp.

1

Đây là blog của dev cho TWiki có thể cung cấp cho bạn một số thông tin hữu ích. http://twiki.org/cgi-bin/view/Blog/WebHome?category=Development.

Sql có phải là yêu cầu của dự án không? Có rất nhiều chuyển động xung quanh NoSql vào lúc này và một wiki có vẻ phù hợp với cơ sở dữ liệu lưu trữ tài liệu. Bạn có thể tìm thấy một số thông tin về điều này tại đây http://nosql-database.org/.

Có triển khai trên Codeplex tại http://wikiplex.codeplex.com/. Đây là từ một bài đăng khác trên stackoverflow asp.net mvc wiki.

4

Tôi vừa mới viết một wiki trong C#. Một điều tôi sẽ thêm vào ý kiến ​​của người khác là bạn sẽ muốn chắc chắn rằng bạn có thể so sánh hai phiên bản. Để thực hiện việc này trong C#, tôi khuyên bạn nên triển khai C# của thư viện diff_match_patch từ Google. Nó khá nhanh và nó khá dễ dàng để mở rộng nếu bạn cần nhiều hơn trong cách in ấn đẹp hoặc xử lý văn bản có cấu trúc như HTML.

0

Bạn có thể muốn kiểm tra xem có thể sử dụng công cụ điều khiển phiên bản cho phần văn bản hay không (vì người dùng có thể vẫn cần một cơ sở dữ liệu) vì hầu hết các hệ thống kiểm soát phiên bản đều có các chức năng cần thiết (history, diffing, log entries) thay đổi, ...) sẽ giúp bạn tiết kiệm rất nhiều công sức.

Các vấn đề liên quan