如何构建数据库表?

时间:2010-08-12 02:16:22

标签: database

我正在筹划一个数据库。它将跟踪软件程序何时注册,并将信息记录在Registered表中。

两个问题:

1:我应该在哪里记录无效的注册尝试。例如,如果用户输入了错误的注册信息,或者他们尝试注册但他们已经使用了所有许可证。我想记住这些信息,但我把它放在哪里?

我在想一个单独的FailiedRegiatration表或一般的通知表。你觉得怎么样?

2:此外,如果用户注册我想要允许的同一台计算机,但我想记录他们重新注册计算机。我应该在哪里存储这些信息?

我在考虑制作一个链接到Refistered表的DateRegiatered表。对于每次成功注册,我都可以跟踪是否有人在同一台计算机上重新注册。

任何评论都有帮助,因为我想通过这个。

感谢。

3 个答案:

答案 0 :(得分:0)

  1. 如果您需要专门处理失败的注册,或稍后将其激活并使其成为成功的注册表,请将其存储在单独的表中。如果您只需了解它,请考虑将故障存储在某种日志表中。

  2. 我想你想要一个单独的表跟踪用户,并注册该机器;这样,您就知道用户执行了多少次注册,无论是1,2或10等。只是一个指向用户ID和注册的指针表...

  3. 我的两分钱。

答案 1 :(得分:0)

就个人而言,我更喜欢使用日志而不是数据库表来记录适合记录的“事件”,而您的“失败注册”事件肯定属于此类别(“注册日期”信息是从这个角度来看更有争议)。

当然,这确实取决于拥有一个好的日志系统(带日志轮换等)一个好的日志处理系统 - 例如,许多托管服务提供商可能不会给你那些,虽然他们通常会让你使用关系数据库。

如果是这种情况(你不能依赖“良好的日志和日志处理”,而是你需要坚持的任何东西必须在数据库中的s / where),然后是一个或多个“类似日志的表” (或多或少像你的大纲)是一种很好的解决方法(并且很难建议更好的解决方法,特别是没有关于你的部署情况的足够信息; - )。

答案 2 :(得分:0)

我认为2个表可行。一个用于跟踪用户的表(例如:id,用户名,序列号,电子邮件)和一个用于跟踪注册的表(id,用户表的外键,时间戳,成功或失败的记录,以及用于计算用户计算机的一些字段) 。

第二个表将是您的日志表,并具有成功初始注册,成功重新注册和注册尝试失败的条目。没有?

根据用户机器上的信息量,如果它是同一台机器,您可以提供各种ID方式。但这是一个难题。