2011-01-26 22 views
3

我想爲我的文件創建一個下載計數器。下面是我目前的表中的字段:我應該怎樣創建我的下載計數器數據庫? MySQL PHP

download_counter table 
_______________________ 
ID - int(6) - AutoInc, 
Product - varchar(128), 
Version - varchar(128), 
Date - date, 
IP's - LONGTEXT 

我想知道如果我應該用我的當前表或我應該用一個更加動態和靈活的表,如下所示:

ID - int(11) - AutoInc, 
Product - varchar(128), 
Version - varchar(128), 
Date - date, 
IP - varchar(45) 
+1

我不太確定問題是什麼,我肯定會使用一個varchar而不是長文本的IP,雖然 – 2011-01-26 17:30:11

+2

哦,它是不好的形式來調用'日期'字段,'日期',總是使用非系統/保留名稱,以及一些更具描述性的內容,比如`dld_date`或'requestDate` – Jakub 2011-01-26 17:37:20

回答

3

我真的正確規範化表:

download_counter { 
    did, 
    prodid, 
    dldstamp, 
    ip 
} 

,並按照與您的產品表:

product_table { 
    prodid, 
    version, 
    description, 
    url, 
    lastmodified, 
    etc; 
} 

而你也只是在下載請求做你的download_counter插入,引用prodid,from your product_table。

夠簡單並且容易規範化。然後,您將在單獨的表格中管理您的產品/下載。

4

我存儲每次擊中記錄,但要確保將索引放置在任何和所有將用於稍後運行SELECT查詢的列上。

備註:如果你想在MySQL中存儲IP地址,你應該看看INET_NTOAINET_ATON函數。它們將虛線符號IP地址轉換爲32位整數,允許您將地址存儲爲4個字節而非15個字節。它們也必須是無符號整數。

相關問題