为了账号安全,请及时绑定邮箱和手机立即绑定

有时候怕加人减人台频繁会不会有锁的问题,比如同时添加多个人到某此活动中?

有时候怕加人减人台频繁会不会有锁的问题,比如同时添加多个人到某此活动中?

牛魔王的故事 2023-05-03 13:09:55
我想做一个活动系统,每个活动都有很多tag, 当然有参加的人数,时间,地点。最近学习了mongodb 感觉如果用mongo会很方便:meeting table:{_id: 42, name: "someName", tags: ["chicken", "parrot", "hovercraft"]}person table:{_id: "somebody@gmail.com", name:"LiMing", phone:"1381671537"}person activity table:{_id:56, person: "somebody@gmail.com", eventid: 42}每个活动都会有很多人参加。我不知道如果系统大了,特别是参加的多了用mongodb好呢,还是用传统数据库mySQL好呢? 还有查询效率,比如:db.meeting.find({tags:{$in:["tag2", "tag1"]}});这样高么? 传统数据库要用多对多表,不知道传统查询速度高还是直接用mongoDB这样速度快。 本来想设计成一张表,如果活动人很多人参加 比如 person有 200人,会不会降低效率?mongoDB多个表join如何查询?
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

只有一点儿忠告:别用自己驾驭不了的技术。

哪个熟悉,哪个你比较精通,就用哪个。

如果两者都没用过,可以考虑 MongoDB。


查看完整回答
反对 回复 2023-05-06
?
手掌心

TA贡献1942条经验 获得超3个赞

mongoDB 模型设计最好不像那样设计,应该像下面

meeting table:
{_id: 42, name: "someName", tags: ["chicken", "parrot", "hovercraft"]}

person table:
{_id: "somebody@gmail.com", name:"LiMing", phone:"1381671537"}

person activity table:
{_id:56, person:
{_id: 42, name: "someName", tags: ["chicken", "parrot", "hovercraft"]},
event: {_id: 42, name: "someName", tags: ["chicken", "parrot", "hovercraft"]}
}

并建好对应的索引


查看完整回答
反对 回复 2023-05-06
?
哔哔one

TA贡献1854条经验 获得超8个赞

数据量大,要花大力气搞的话 可以考虑 MySQL 和 Sorl 结合。

数据量不大,完全可以考虑把tag作为一个分类去做,保存在MySQL。

MySQL没有你想的那么慢。


查看完整回答
反对 回复 2023-05-06
  • 3 回答
  • 0 关注
  • 260 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信