![]() |
1
8
假设你是为了教程而这么做的(因为已经有很多很棒的wiki软件在那里),让我们看看我是否能对这个主题有一个非常全面的概述。当然,我没有时间和空间来编写这个答案中的整个wiki,如果我这么做,你也不会学到任何东西。但是,我将尝试展示一般的框图,并给出一个数据库模式的示例。
根据你想得到的简单或复杂程度,这是你只需要的三页。你的“主页”和任何其他重要页面(“联系我们”、“关于我们”、“如何使用这个wiki”等等)都可以是文章,因此它们的处理方式与解析请求的方式相同。有了功能性wiki之后,您可以考虑添加以下内容:
因为我们还没有一个正常运行的wiki,所以这些需要额外的时间和精力来实现,所以让我们从基本的三个页面开始。每一个页面都应该有自己的框图,或者它们必须执行的功能的简单列表(具体的实现我将留给您来解决) 对于项目分析脚本:
至于编辑文章,这个页面可能是最简单的。我会做如下事情:
至于登录页面,如果您曾经用多个用户编写过代码,那么您将了解这应该如何工作。
至于数据库的外观,您有一个几乎是必需的一个表(每个人都会将它放在数据库中,出于安全原因,没有人会将它信任于平面文件)。
包含任何登录用户的信息的表。至于文章本身,您可以选择将它们存储在数据库或文件中。MediaWiki将所有内容存储在MySQL中,但是DokuWiki使用TXT文件。这是一个偏爱的问题,但是还有一些其他的事情要考虑。
如果要将文章存储在数据库中,我建议使用类似于以下内容的设置:
当您添加特性时,您可能也开始需要这些特性的数据库表。例如,如果您要为每个图像创建一个媒体查看器页面(而不是让文章显示图像),则需要考虑以下几点:
为了让您思考可能包含的一些功能以及这些功能对数据库的影响,以下是MediaWiki的数据库: http://upload.wikimedia.org/wikipedia/commons/4/41/Mediawiki-database-schema.png |
![]() |
Karlo · PHP Sqlite PDO最新版本 3 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 4 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 4 月前 |