database - 将数据持久化为一组具有公共(public)键和类型的键值对的选项

标签 database persistence agile

我正在考虑编写另一个框架,以便更轻松地开发“面包和黄油”应用程序(例如创建一个包含 N 个字段的类,免费获得一个编辑器以及数据库持久性)。

所有数据模型都可以转换成Entity-Attribute-Value形式:

TYPE VARCHAR(32)
ID LONG INT
NAME VARCHAR(32)
VALUE VARCHAR(64000)

可能还有第二个表用于非常大的字段,因此我会在 VALUE 列中保留对 BLOB 表中条目的引用。如果我有心情,我可以为每个值类型创建一个表(因此 int 将是 INTEGER,避免所有转换问题)并且我可以使用一个表来定义有效的 TYPE 等。

这将有效地让我不必担心数据库设计,因为没有数据库设计。数据库可以通过使用简单的更新来适应我模型中的任何变化。我什至可以拥有具有其他字段的同一类的实例。

缺点是对于每个对象,我需要读取 N 行或者我需要开始构建包含 N 个子查询的复杂查询。

有没有人有这方面的经验?有没有人以这种方式实现过更大的系统?除了普通的 SQL 之外,还有哪些其他选项可以持久化数据?我特别想听听有关敏捷系统的信息,这些系统可以轻松地适应模型的变化或允许“修补”模型(通常,一个实例会有一个名称,但对于某些实例,我还想添加评论) .或者有人遇到过 SQL 后的问题吗?下一件伟大的事情?

最佳答案

我还没有用过它,但你正在尝试做的事情听起来像 CouchDB .在重新发明轮子之前,您可能想看看那里...

关于database - 将数据持久化为一组具有公共(public)键和类型的键值对的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/629984/

相关文章:

database - 创建索引并没有改变我的查询成本

SQL Server 查询最后移动的项目

java - 使用 Java,我将图像上传到 postgres DB,大小为 4000。但是当我下载它时,大小为 8000

javascript - 适用于 JavaScript/Google v8 的持久性框架

java - 这个 JPA "cached hashCode"模式有什么陷阱吗?

python - python中sqlite数据库中的游标对象是什么?

python - 在 python 中具有修订意识的 delta-dictionary/dictionary?

architecture - 敏捷解决方案设计

bdd - 用户故事应该以 Gherkin 格式编写吗?

agile - 用户故事中的 'type of user' 是什么?