Database 在MongoDB中存储自定义集合模板 背景
我正在开发一个web应用程序,它要求用户创建和填写自定义表(想想HTML或MS Word表,而不是数据库表)。其想法是管理员将为这些表创建模板,一般用户将填写这些模板。每个普通用户都可以填写自己的模板,因此将有许多表使用相同的模板 现在,这些模板可以容纳任意数量的列,并且每列可以有不同的数据类型。它们也可以随着时间的推移而改变,这意味着它们应该有不同的版本。换句话说,一旦用户填写了模板,就应该使用该结构存储该模板,即使模板将来会更改。它将保留模板的旧版本,而新用户将使用最新版本 我通常使用关系数据库,但在这种情况下,关系数据库似乎并不适合。我觉得最终会有一堆表,需要许多连接来提取我需要的数据,特别是在数据库规范化的情况下 我想用MongoDB之类的东西。我是Mongo的新手,所以我确定我没有探索过每一个选项,但我认为这比使用MySQL(我在其他应用程序中使用过的MySQL)更好。不过,如果我错了,一定要告诉我;也许我错过了什么 我希望能够存储模板(名称、列(按顺序,以及它们的名称和数据类型)),然后在用户每次需要填写模板时重用这些模板。我将使用集合来存储使用相同模板版本的所有表。也就是说,每次创建模板时都会创建一个集合。集合中的所有文档都应该遵循定义的数据类型。如果我理解正确,MongoDB为此提供了模式验证 我的方法和问题Database 在MongoDB中存储自定义集合模板 背景,database,mongodb,database-design,nosql,Database,Mongodb,Database Design,Nosql,我正在开发一个web应用程序,它要求用户创建和填写自定义表(想想HTML或MS Word表,而不是数据库表)。其想法是管理员将为这些表创建模板,一般用户将填写这些模板。每个普通用户都可以填写自己的模板,因此将有许多表使用相同的模板 现在,这些模板可以容纳任意数量的列,并且每列可以有不同的数据类型。它们也可以随着时间的推移而改变,这意味着它们应该有不同的版本。换句话说,一旦用户填写了模板,就应该使用该结构存储该模板,即使模板将来会更改。它将保留模板的旧版本,而新用户将使用最新版本 我通常使用关系数
{
name: <String>,
fields: [
{
name: <String>,
type: <String> <----this is what I have an issue with
},
...
]
}
{
姓名:,
字段:[
{
姓名:,
type:关于在我的应用程序中将模板存储在mongodb中,我有相同的想法。
您应该为您的项目使用标准模式,因为我们将有一些用于验证数据的支持库
JSON模式:
目前的版本是草案-07
。您可以阅读有关模式标准的信息,并使用多种程序语言创建客户端库
MongoDB:
现在MongoDB 3.6支持验证JSon模式草案-04
在MongoDB中存储架构:
在集合中存储Json模式时会出现问题。
Json模式有一些不能存储在mongodb中的字符。
你可以参考
{
template_id: <uuid, integer, string or something>
name: <String>,
rows: [
{
<field name>:<field value of specified type>,
...
}
]
}