2013-04-30 59 views
0

我建立了一個網站,一次一個地旋轉菜單顯示屏幕。爲了達到這個目的,每一個屏幕都被插入到數據庫中,以便每次用戶啓動屏幕活動時跟蹤它。數據庫使用意見

根據用戶的數量以及他們發起活動的頻率,表格的id字段最終會變得非常高。每次啓動廣告系列時,舊特定行都會被刪除,以供特定廣告系列和用戶使用,並重新開始。當然,ID值繼續增加。

身份證通常是5位,6位,7位或更高的數字?它真的很重要嗎?

如果是這樣,如何將它重置爲1.或者我需要嗎?

+0

要重置您的'auto_increment'值:'ALTER TABLE yourtable AUTO_INCREMENT = 0' – BackSlash 2013-04-30 19:56:47

+0

根本不重要。 – Randy 2013-04-30 19:58:37

+0

需要確保您的密鑰得到回收。一個id爲2的孤兒活動會導致一個小問題。 – 2013-04-30 20:07:20

回答

0

我不知道你正在使用什麼數據庫,你沒有說明該列是什麼數據類型。可以選擇一個太窄的數據類型,例如tinyint,它在255處出現(如果您使用的是MS-SQL Server)。這是一個容易受到打擊的極限。如果您快速創建數據,Smallint 32,700可能會在很長一段時間後被擊中。 int非常大,我從來沒有在真實世界的場景中達到極限2,147,483,647。我猜想如果你是在惡性通貨膨脹經濟或高精度工程工作中進行會計覈算的話。大詮釋是如此之大,你會在幾個生命週期中用完數字:9,223,372,036,854,775,807。所以到你使用bigint的時候,你可能只是在浪費磁盤空間。

希望您的用戶界面不會向用戶公開您的表的主鍵,因爲如果他們希望他們更改,更改主鍵很麻煩,因爲它會級聯到所有相關的表。所以保守祕密,不要自己看,它的數字位數是化妝&真正重要的是數據類型佔用了多少空間,對於大多數數字數據類型是固定的。

+0

我正在使用數據類型int,所以我應該狀態良好。 – stevenpepe 2013-04-30 20:22:27

0

嗯我永遠不會想到這樣做。 讓廣告系列表具有某種顯示順序。 在第一次顯示campaign_id和日期時向您的用戶表中添加一列。您可以使用登錄時間。然後有一些什麼時候旋轉和什麼的邏輯。