我正在使用MySql表来存储当前登录用户的会话记录。一旦用户注销,我会更新同一记录中的几个字段并标记(撤消)它不应该再次使用。因此,对于每个LogIn都会创建一条新记录。这符合我的目的,但事实证明,桌子将变得巨大。在用户注销后,会话表是否应该从记录中清除?
存储会话的标准方法是什么?应该将被撤销的那些存储在单独的表中,还是应该将它们删除或保留在同一个表中?
我认为将数据留在同一个会话表中。查询特定记录时,我使用两个字段进行查询:(idPeople(不唯一)和已撤销(0或1)),例如SELECT * FROM session WHERE idPeople = "someValue" AND revoked = 0
。然后在用户登录或登录时根据需要更新记录。巨大的桌子会影响这个吗?或者MySql会处理这个?还有什么是我无法看到的其他后果?
是的,问题是将有多个记录与相同的字段,即idPeople(这不能是唯一的),我知道这一点,我可以查询表。 –
这就是为什么我建议在表结构中添加一个字段,例如会话初始化时间戳。您可以设置一个结合时间戳和用户的唯一索引,并获取用户的记录过滤和最新的时间戳记(因此,搜索将使用索引而不是实际表格进行)。 – FDavidov
是的,理解,谢谢! –