Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用c#和sql滚动您自己的wiki有什么好处?_C#_Sql_Wiki - Fatal编程技术网

使用c#和sql滚动您自己的wiki有什么好处?

使用c#和sql滚动您自己的wiki有什么好处?,c#,sql,wiki,C#,Sql,Wiki,我想了解wiki是如何工作的,至少从高层次上是这样。当用户保存更改时,是否总是在数据库中为该wiki文章插入新行(10个修订,数据库中10行) 是的。否则,就不可能看到完整的页面历史记录,而这正是Wiki实现所期望的。Wiki中的每个条目都是数据库中的新条目。 这样就可以跟踪修订。这一切都是关于社区和跟踪的。 数据库在后台存储日期时间、所做的更改等。是 看起来有点短。假设您必须存储原始文章,然后再存储每个更改的详细信息。因此,您可能有一个文章表和一个修订表。这样,您可以回滚到以前的任何状态 当

我想了解wiki是如何工作的,至少从高层次上是这样。当用户保存更改时,是否总是在数据库中为该wiki文章插入新行(10个修订,数据库中10行)

是的。否则,就不可能看到完整的页面历史记录,而这正是Wiki实现所期望的。

Wiki中的每个条目都是数据库中的新条目。 这样就可以跟踪修订。这一切都是关于社区和跟踪的。 数据库在后台存储日期时间、所做的更改等。

看起来有点短。假设您必须存储原始文章,然后再存储每个更改的详细信息。因此,您可能有一个文章表和一个修订表。这样,您可以回滚到以前的任何状态


当然,表格的设计,从原始文本中剥离修订文本并单独存储的逻辑非常复杂。

这是TWiki的开发博客,可能会给你一些有用的信息

Sql是项目的一项要求吗?NoSql目前有很多变化,wiki似乎很适合文档库数据库。有关这方面的一些信息可以在这里找到


在的Codeplex上有一个实现。这是另一篇关于stackoverflow的帖子。

我同意所有的答案。Wiki通常将每次编辑作为数据库中的新记录来处理

您可能有兴趣查看完整的,这是背后的wiki引擎


请注意,每个修订版的全文都存储在
text
表的
MEDIUMBLOB
字段中。

实际上,我刚刚用C写了一个wiki。我想在其他人的评论中补充一点,那就是您需要确保能够比较两个版本。为了在C#中实现这一点,我强烈建议使用Google的库的C#实现。它非常快,如果您需要更多的打印或处理结构化文本(如HTML),它也很容易扩展。

您可能需要检查是否可以为文本部分使用版本控制引擎(用户等可能仍然需要数据库),因为大多数版本控制系统都实现了所有必要的功能(历史记录、差异、更改的日志条目等),这将为您节省大量工作