【问题标题】:Light Blogging system sans database轻博客系统无数据库
【发布时间】:2010-12-29 16:33:00
【问题描述】:

这是一个通用的编程问题。

制作一个可以处理图像、bbcode-ish 样式和文本 没有数据库后端的轻量级博客系统的最佳方法是什么?轻意味着在极端情况下不超过 50 到 100 个帖子。 应该使用什么语言?信息是否有任何首选的数据格式?安全性如何发挥作用?

编辑:客户端没有数据库,位于共享服务器上。不能改变那个。因此,没有 DB。

编辑2:

有人提到 SQL Compact - 除了将文件复制到服务器之外,它还需要其他什么吗?这里的关键是再次,事情不应该需要比 FTP 访问更多的权限。

【问题讨论】:

  • 避免使用数据库是否有特殊原因?数据库将是最高效和可扩展的解决方案。
  • 您仍然可以使用一些文件数据库,例如 ffdb-php.sourceforge.net 或 Apache 的 couchDB

标签: php xml ajax blogs


【解决方案1】:

如果您想自己动手;将每个帖子作为文件存储在目录中。然后对帖子进行排序和限制,您部分依赖文件名来排序和限制它们,并且可能(在搜索的情况下)读取每个最后一个文件。不要让用户发布 10,000 个帖子。但是,是的,以上被认为是平面文件数据格式。您可以通过在每个 post 文件中使用 JSON、Yaml 或 XML 等标准格式来获得幻想,甚至可以通过在大多数客户端代码中使用 Ajax 调用来请求这些格式。

现在,如果您想使用平面文件的原因是您不想安装数据库服务器,那么没有什么能阻止您将本地(到服务器)文件作为 berkley DB、Lucene 索引读取,或使用适当的客户端库从您的 web 应用程序中的 SQLite DB。您会发现这些方法中的任何一种都比上述方法更理智(更快一点,代码更具可读性),并且在服务器上安装的所有相同要求(读写文件权限)。许多 Web 框架或语言(如 php)都带有这些客户端库的 API 选项; SQLite,尤其是 Lucy (C Lucene)。

如果您只是在寻找它正在完成的示例,我首先(我认为是 1999 年或 2000 年)遇到了blosxom,这是一个 perl 脚本,它可以作为每个请求的 cgi 脚本或作为 cron 作业运行。它会根据您放入要扫描的目录中的任何内容来构建“帖子”的日期索引。它还构建了一个 RSS 提要。

【讨论】:

  • +1,特别是建议将嵌入式数据库作为较低规模的解决方案
  • +1,我认为值得补充的是,许多现成的博客引擎都可以支持嵌入式数据库。重新发明这个轮子毫无意义。
【解决方案2】:

JekyllBlogofile 是我最喜欢的解决方案,“上传前编译页面”。

【讨论】:

    【解决方案3】:

    我将在这里冒险并说它并不总是目的地,而是旅程。

    如果您打算这样做,我建议您使用一种您觉得舒服的语言。就我个人而言,这对我来说是 C#/.net,但根据您的标记,我假设 PHP 将是您选择的服务器端脚本语言。

    我会布局我希望我的应用程序的行为方式。如果会有大量数据,您应该考虑(如 dlamblin 所述)某种用于查找和检索的数据库。 (Light Blog,没有那么多数据... 1000 个用户可以编辑?也许您应该考虑使用数据库。)一旦您决定如何存储数据,就决定如何呈现它。

    为您要实现的每个功能(博客模板、bbcode、用户身份验证、文本搜索...)编写一些概念验证代码,然后开始将它们一起工作。

    【讨论】:

    • 谢谢,实际上这是给我的客户的。最多 1-3 位编辑,不经常发帖。 1000 个用户是主要夸大其词。是的,PHP 是这里的首选语言。
    【解决方案4】:

    在 google 上搜索平面文件 cms-es,例如: http://www.flatcms.org/

    这已经完成,因此无需再次创建此类 CMS。有很多。

    【讨论】:

    • 这个链接指向一个似乎与内容管理无关的日本网站...
    【解决方案5】:

    我同意 dusoft 的观点,这已经完成了。

    DotNetBlogEngine.net 是一个基于 ASP.NET (C#) 的博客系统,有一个不错的 XML 后端作为选项。

    【讨论】:

      【解决方案6】:

      不直接回答您的问题,但请查看Unify

      【讨论】:

        【解决方案7】:

        如果您不想写新的或想获得一些灵感:

        【讨论】:

        • DB 免费 wordpress - 听起来令人印象深刻。我已经受到启发。
        【解决方案8】:

        您可以使用 XML,也可以使用 SQL compact(它允许像 SQL Server 一样处理事物,但您使用平面文件而不是数据库)。

        【讨论】:

          猜你喜欢
          • 2011-01-28
          • 1970-01-01
          • 1970-01-01
          • 2023-03-23
          • 1970-01-01
          • 2014-02-26
          • 1970-01-01
          • 2014-07-17
          • 1970-01-01
          相关资源
          最近更新 更多