MongoDB有没有数据库表设计?

天台道人 发布于 2015/03/09 19:02
阅读 4K+
收藏 1
MongoDB小白一枚,都是MongoDB是JSON数据库,那MongoDB需不需要进行表结构设计?换句话说就是,为每张表设计一个JSON模板,然后相同或相似结构的JSON文件都算在这张表中?
加载中
1
Feng_Yu
Feng_Yu
mongodb不叫表,只有collection. 而且非关系性数据库本身也没那么复杂的逻辑结构
0
回去干活
回去干活

你是想严格规定行数据结构.

你直接在代码层面写好数据结构就可以了.

0
saintatgod
saintatgod
没有啥数据设计的,如果想规划,就把相同的意义的数据放到一起
0
魔力猫
魔力猫
数据结构设计并不单指数据库范式。但是如果说仅仅因为不是关系数据库,我就可以弄得比excel表还随意,那么最后倒霉的还是你自己。
0
天台道人
天台道人
恩,我刚安装成功2.6.8版本,发现一张表(Collection)对其中具体记录的具体字段居然没有任何约束,什么json都可以放在同一张表中,无论这个json数据和已有的其他json结构差异有多大。
天台道人
天台道人
回复 @Feng_Yu : Collection
Feng_Yu
Feng_Yu
当然了,为了管理方便分类存放还是有必要的。某些filed丢在一个collection,其他分类的field又可以丢在另外一个collection,方便区分。为了查询方便,可以为某些field加上索引
Feng_Yu
Feng_Yu
都说了,这个不叫表。collection最多翻译成集合,既然叫集合了,那么就没有表这种结构限制的条条框框。理论上自然是什么数据都可以丢进去。这也是非关系性数据库的一大特点。就是可以当这一类乱七八糟的数据的存储方案。
0
铂金胖子
铂金胖子
mongoengine  可以约束!
天台道人
天台道人
thx,貌似可以理解成,是一个可以对json字段进行弹性约束的规则进行模板编写,和实例-模板校验的东东
铂金胖子
铂金胖子
回复 @金木道长 : 有人写了一个简单的 https://github.com/reorx/simplemongo 你可以fork一个,自己改改!
天台道人
天台道人
@铂金胖子 这个蛮好的,可以接近关系数据库而又不限死,如何可以约束下子节点的个数和数值值域就太好了
0
朱__朱
朱__朱
没有. 不光MongoDB,几乎所有的NoSQL都不存在schema的概念. NoSQL就是为了高伸缩设计的, schema设计在应用层, 数据层仅仅用于存取数据.
0
天台道人
天台道人

对了,一个Collection里记录太多,是不是也会像关系数据库那样影响读写效率?是不是也要进行分表?比如类似结构的记录本该放在同一个Collection的,但是为了MongoDB的查询效率,需要把一个Collection按年份或者其他等方式分Collection(分表)

天台道人
天台道人
thx
Feng_Yu
Feng_Yu
不需要。想想看json这种数据结构的初衷。不就是hash表么?可以说对于查询来说开销是极小的。而且mongodb支持索引,你可以对查询的关键field进行index,比如按照date这个field作为关键进行查询,可以对date插入index
0
I
IT盲
没有人任何约束。它是模式自由的!!!!
返回顶部
顶部