我打算记录将用户通过IE访问的信息(用户名、IP地址、登入时间、退出时间)保存到数据库中,有如下一些不明之处:
1、肯定需要在数据库中创建一张表记录上述信息,表的主键应该是什么?
2、这张表的字段有两种设计:
A
用户名,
用户IP,
状态, -----区分是登入还是退出
时间, -----记录登入或退出的时间
B
用户名,
用户IP,
登入时间,
退出时间,
这两种设计哪种好实现?对于B如何将用户的一次登入时间和其登出时间对应起来?
3、如果用户没有正常退出,那么是否也会在数据库中写入退出时间呢?
------解决方案--------------------------------------------------------
1、主键用自增ID,因为这种日志表数据量都比较大,写入比较多,要使用有序的主键,这样性能好,省的数据库调整聚集索引,当然你也可以用DateTime.Ticks,是有序的 也是有时间意义的。
2、推荐第二种 ,扩展性比较好,用户行为是一对多的关系,以便以后增加其他的扩展
3、非正常退出没必要记录,浪费空间。