因此,我正在为Discord开发一个机器人,并使用ORM,Sequelize和SQLite作为数据库引擎。我的机器人基本上将拥有一个可以购买商品的商店,因此我想将商品存储在数据库中,所以我是这样考虑的。
const UserItems = sequelize.define("useritems", {
user_id: Sequelize.STRING,
item_id: Sequelize.STRING,
count: {
type: Sequelize.INTEGER,
defaultValue: 0,
allowNull: false,
},
});
问题是,考虑到我的机器人将拥有约1000个用户,我的游戏将包含约100个物品,这样存储用户物品的方式难道不是太重吗?
答案 0 :(得分:2)
很难说您的游戏是否会给系统带来压力。因此,您可以做的是尝试编写可可扩展的应用程序和基础架构。
特别是,当谈论有关有状态组件(数据库,队列等)的可伸缩性时,您会发现Replica Set
和Sharded Cluster
的功能更多。
请参阅:https://dba.stackexchange.com/questions/52632/difference-between-sharding-and-replication-on-mongodb
我发现litereplica
支持SQLite的Replica Set
。设置非常容易,因为您只需更新您的连接字符串即可包含一组主机,而不是单个主机。
因此,如果您的应用程序可以具有动态连接字符串(可以通过环境设置),那么您将可以将来使用它,并且可以在需要时添加更多SQLite实例。