2010-11-16 72 views
0

我是SQL新手,並被賦予一項任務。以下是詳細內容:設計實現SQL表

我有什麼:用戶登錄和查看用戶狀態(只有兩個選擇

  1. AC#桌面應用程序:這是假的所有用戶在用戶登錄並檢查狀態創建)

  2. 甲表命名USER含有

    • ID
    • 用戶名
    • dateCreated會
  3. 命名含有

    • ID
    • 用戶名
    • LOGTIME
    • LOGDATE
    • LOGINSTAT
      的表3210

我要實現

我在使用SQL中LOGINSTAT表中有史以來用戶登錄,以節省時間和日期什麼。

我的問題

我的問題是我怎麼可以實現。我可以做編碼部分,但我有興趣得到一些好的建議來實現它。我認爲這是一種正式的方式,因爲我知道這麼做:

當用戶登錄插入值到登錄表中提供所有所需的值。

我認爲這可能是一個有點奇怪。我的一些朋友說你可以通過使用外鍵和主鍵來實現它,但問題在於用戶可能會在一天中登錄很多時間。在這種情況下如何跟蹤登錄時間和日期?

+0

什麼是數據庫系統? – 2010-11-18 17:50:54

回答

1

您在LOGINSTAT表中不需要用戶名。

你可能會想LOGINSTAT包括:

  • ID
  • U_ID
  • loginDateTime

的id是每次登錄
U_ID的唯一ID是外鍵從與您的日誌事件相匹配的用戶中的用戶名到用戶
loginDateTime是一個日期時間,你的日誌日期和日誌時間都在一列

+0

我會盡量實現這一點 – 2010-11-17 19:13:57

1

LOGINSTAT中的獨特之處是什麼?不是用戶本身,而是ID + LogDate + LogTime應該是。那將是你的主要關鍵。

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

0

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

引用該主鍵的另一個表中的FOREIGN KEY列中的值(例如,引用USER的LOGINSTAT.id。ID)不需要是唯一的 - 你可以在一個表中有多個記錄具有相同的外鍵列引用相同的主鍵。