我在开发PHP codeignitor和MySQL方面有一个社交网站。我在数据库中存储用户会话以处理多服务器环境。目前只有1个数据库。
1)处理多个数据库(+多服务器)用户会话的存储方式和位置?我假设数据库不能在多数据库环境中工作。
2)给用户的会话ID,是从数据库自动增加还是从应用程序逻辑生成?我认为它应该是一个GUID?
3)除了会话ID,我还有一个user_session表,它记录所有与会话相关的详细信息,如login_datetime,logout_Datatime,如果用户在web / mobile等等。所以这个表必须分两个阶段写入:用户登录时再次登录。问题是当用户注销系统编写日期时应遵循的逻辑是什么时候?就像系统将如何知道将数据写入哪个user_session一样,因为此PK ID是数据库驱动的自动增量值并且在创建主会话ID之后创建。所以最后它需要查询user_session表来查找user_Session ID然后写。
答案 0 :(得分:0)
您的评论为我提供了一些解决此问题的最佳方法的线索。
首先,如果网站即将推出但尚未推出,解决问题的最佳方法是:不要担心此问题。只需将一台服务器上的所有内容暂时托管在一台数据库中。无论多么出色,您的想法都需要解决许多问题,因为在需求增加到足以需要更多硬件之前,它的前几个真实用户就会出现问题。
其次,您的图像和视频服务器可能不需要用户的会话信息。如果用户请求带有视频的网页,并且他们有足够的权限查看网页,那么您可以直接发送视频而无需进一步验证。通过此选项,您还可以使用内容交付网络(我个人喜欢RackSpace Cloudfiles,与Akamai建立合作伙伴关系),从而大大改善了使用自己服务器的用户体验。
祝你好运!