Что происходит с тем, чтобы перевернуть вашу собственную вики, используя С# и sql?

Я хотел бы понять, как работает wiki, по крайней мере, с высокого уровня. Когда пользователь сохраняет изменения, всегда ли он вставляет новую строку в базу данных для этой статьи wiki (10 ревизий, 10 строк в базе данных).

Ответ 1

Я согласен со всеми ответами. Вики обычно обрабатывают каждое редактирование как новую запись в базе данных.

Вы можете быть заинтересованы в ознакомлении с полной версткой схемы базы данных MediaWiki, вики-движка Wikipedia.

Layout of the MediaWiki database diagram

Обратите внимание, что полный текст каждой ревизии хранится в поле MEDIUMBLOB в text таблице.

Ответ 2

На самом деле я написал вики на С#. Одна вещь, которую я хотел бы добавить ко всем остальным, - это то, что вы захотите сравнить две версии. Для этого в С# я настоятельно рекомендую реализацию С# библиотеки diff_match_patch от Google. Это довольно быстро, и это довольно легко расширить, если вам нужно больше на пути к печати или обработке структурированного текста, такого как HTML.

Ответ 3

Каждая запись внутри вики - это новая запись внутри базы данных. Таким образом, можно отслеживать изменения. Это все об обществе и отслеживании. За кулисами база данных хранит дату и время, внесенные изменения и т.д.

Ответ 4

Да, да. В противном случае невозможно будет увидеть полную историю страниц, что ожидается от реализации Wiki.

Ответ 5

Да.

...

Кажется немного коротким. Позвольте просто сказать, что вы должны сохранить оригинальную статью, а затем подробную информацию о каждом изменении впоследствии. Таким образом, у вас может быть таблица статей и таблица изменений. Таким образом, вы можете вернуться в любое предыдущее состояние.

Конечно, дизайн таблиц, логика снятия пересмотренного текста с оригинала и хранения его отдельно, довольно сложна.

Ответ 6

Вот блог разработчиков для TWiki, который может дать вам полезную информацию. http://twiki.org/cgi-bin/view/Blog/WebHome?category=Development.

Является ли требование Sql проектом? На данный момент существует много движений вокруг NoSql, и вики, похоже, хорошо вписываются в базу данных хранилища документов. Некоторую информацию об этом можно найти здесь http://nosql-database.org/.

Существует реализация на Codeplex в http://wikiplex.codeplex.com/. Это из другого сообщения в stackoverflow asp.net mvc wiki.

Ответ 7

Возможно, вам захочется проверить, может ли быть использован механизм управления версиями для текстовых частей (пользователям и т.д. может понадобиться база данных), поскольку большинство систем управления версиями имеют все необходимые функции (история, различие, записи журнала для изменений,...), что сэкономит вам много работы.