0

我正在设计一些自定义博客软件,并且遇到了关于数据库设计的难题。该软件要求有多种内容类型,每一种都需要不同的输入表格和演示模板。

我最初的直觉是将这些内容类型创建为对象,然后将它们序列化并将它们作为 JSON 或 YAML 存储在数据库中,并将输入表单和模板作为附加到“contentTypes”表的简单字符串。然而,这似乎很麻烦。是否有处理这种设计的最佳实践?这是我应该考虑对象数据库的用例吗?

如果我应该使用对象数据库,我应该考虑哪个?我目前正在使用 Python,并且希望有一个功能强大的 Python 库,但如果需要,可以迁移到 Java。

4

2 回答 2

2

请不要将模板(可能由用户更改)存储在数据库中。如果您必须处理数据库转储的问题,那么从登台环境迁移到生产环境就没有明智的方法。出于这个原因,我们正在倾销一些软件。

除此之外,我只需将源(用户可编辑部分)存储在数据库中,外加一个“预编译版本”,或者直接存储在数据库中(以便更快地检索)或存储在某些缓存系统中。

我个人会采用一套理论方法。

  • 存储每组预编译的内容类型,并在编辑时重新编译它以便在单独的位置(表、集合、目录等)快速提供服务
  • 将源存储在一个公共位置,以便于重新构建不同的内容类型(源格式实际上只是一种特殊情况的内容类型)
  • 将模板保存在系统(dev、staging、prod)之间迁移容易迁移的地方
于 2010-12-23T10:40:07.573 回答
0

我是一个巨大的 Oracle 助推器,但我认为你应该认真考虑 NoSQL。Cassandra 和其他 NoSQL 数据库已经考虑到了您的难题并将其粉碎。CouchDB 是另一个人,我相信他们的示例代码是如何存储博客的。

于 2010-12-21T23:53:16.367 回答