Я хотел бы понять, как Wiki работает, по крайней мере, от высокого уровня. То, когда пользователь сохраняет изменения, делает это, всегда вставляют новую строку в базу данных для что статья Wiki (10 изменений, 10 строк в базе данных).
Я согласен со всеми ответами. Обычно вики обрабатывают каждую правку как новую запись в базе данных.
Возможно, вам будет интересно ознакомиться с полной схемой базы данных MediaWiki, вики-движка, лежащего в основе Википедии.
Обратите внимание, что полный текст каждой ревизии хранится в поле MEDIUMBLOB
в таблице text
.
На самом деле я только что написал вики на C #. Одна вещь, которую я хотел бы добавить ко всем комментариям, - это то, что вы захотите убедиться, что можете сравнить две версии.Для этого на C # я настоятельно рекомендую реализовать C # библиотеки diff_match_patch от Google. Это довольно быстро, и его довольно легко расширить, если вам нужно больше в способах красивой печати или обработки структурированного текста, такого как HTML.
Проверьте множество ресурсов в Rexx Language Association ( www.rexxla.org ), особенно раздел ссылок .
-121--3338968-
если (MyStringVariable = = «LKOH») Debugger.Break ();
потребуется пространство имен System.Diagnostics
http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx
-121--2230454-Да. В противном случае невозможно будет увидеть полную историю страниц, что ожидается от реализации Wiki.
Каждая запись в вики - это новая запись в базе данных. Таким образом можно отслеживать изменения. Все дело в сообществе и отслеживании. За кулисами база данных хранит время даты, сделанные изменения и т.д.
Можно попробовать с помощью
CONFIG += dll
QT -= gui core
LIBS -= -lQtGui -lQtCore
-121--2959376- Если требуется указать способ форматирования чисел, необходимо использовать конструктор DecimalFormat. Если вы хотите, чтобы «пути большинство чисел были представлены в моем текущем языковом стандарте», то используйте экземпляр NumberFormat по умолчанию.
-121--3690399-Возможно, вы захотите проверить, можно ли использовать механизм управления версиями для текстовых частей (Пользователям и т.д. все еще нужна база данных), поскольку большинство систем управления версиями имеют все необходимые функции (история, различия, записи журнала для изменений,...), что сэкономит вам много работы.
Вот блог разработчиков 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 .
Да.
...
Кажется кратковременным. Скажем так, вам нужно сохранить исходную статью, а затем подробности о каждом изменении. Таким образом, у вас может быть таблица статей и таблица изменений. Таким образом, вы можете вернуться в любое предыдущее состояние.
Конечно, дизайн таблиц, логика удаления исправленного текста из оригинала и его отдельного хранения довольно сложны.