0

我是 SQL 新手,我被赋予了一项任务。以下是详细信息:

我有什么

  1. 用于用户登录和查看用户状态的 AC# 桌面应用程序(只有两个选项:用户登录并检查所有虚拟创建的用户的状态)

  2. 名为USER的表包含

    • ID
    • 用户名
    • 创建日期
  3. 名为LOGINSTAT的表包含

    • ID
    • 用户名
    • 日志时间
    • 日志日期

我必须实施的

当用户使用 SQL 登录 LOGINSTAT 表时,我必须保存时间和日期。

我的问题

我的问题是如何实现它。我可以完成编码部分,但我有兴趣获得一些好的建议来实现它。据我所知,我认为这是一种正式的方式:

当用户登录时,将值插入登录表中,提供所有必需的值。

我认为这可能有点奇怪。有朋友说用外键和主键也许可以实现,但问题是用户一天可能登录很多次。在这种情况下如何跟踪登录时间和日期?

4

3 回答 3

1

LOGINSTAT 有什么独特之处?不是用户本身,但 ID+LogDate+LogTime 应该是。那将是您的主键。

唯一的外键在 LOGINSTAT: ID 中,它引用 USER 表中的 ID。

于 2010-11-16T19:55:02.770 回答
1

您的 LOGINSTAT 表中不需要用户名。

您可能希望 LOGINSTAT 包括:

  • ID
  • u_id
  • 登录日期时间

id 是每个登录的唯一 ID
u_id 是用户中的 id 的外键,它与您的日志事件匹配到用户
loginDateTime 是一个日期时间,它将在一个列中为您提供日志日期和日志时间

于 2010-11-16T19:55:31.557 回答
0

PRIMARY KEY 列(例如 USER.id)中的值必须彼此唯一。

另一个表中引用该主键的 FOREIGN KEY 列中的值(例如,引用 USER.id 的 LOGINSTAT.id)不需要是唯一的 - 您可以在一个表中有多个记录具有相同的外键列引用相同的主键.

于 2010-11-16T19:55:31.030 回答