假设现在有一个数据结构如下的数据源
[
{
id: 1,
name: '小明',
price: 300,
data: [
{
id: 10003,
name: '屠龙宝刀',
num: 100
},
{
id: 10004,
name: '无尽之刃',
num: 100
}
{
......
}
]
},
{
id: 2,
name: '小红',
price: 300,
data: [
{
id: 10003,
name: '屠龙宝刀',
star: 5,
num: 100
},
{
id: 10004,
name: '无尽之刃',
star: 3,
num: 100
}
{
......
}
]
}
{
..........
}
]
如以上结构,假设有200万条游戏账号数据,怎样设计数据库和表才能使搜索速度尽可能快,要求能搜索出拥有 m 个“屠龙宝刀” 和 n 个“无尽之刃”的账号。
我现在想了几种方案
- 关系表
account(账号)表,一个data(装备)表,一个rel(关系)表,但是关系表的条数是 账号数 * 每个账号的物品数, 至少是三四千万。
- 全文搜索
一个account(账号)表,一个data(装备)表,账号表里,用一个字段存物品的字符串,采用全文搜索 - mongodb 没接触过,但是听说可以直接存json,而且便于检索
各位大佬有没有更好的方法,先在此谢过,采纳的可以私信发个红包
用MongoDB的话,你题目中的数据结构就可以很好地表达你需要的数据。
这个搜索可以用:
为了查询更快,需要索引: