2012-12-21 168 views
9

我有一個問題,我真的不確定。 首先隨時downvote我,如果它的必須,但我真的很想聽聽更有經驗的開發人員的意見。mysql無限主鍵自動增量

我正在建立一個網站,我想建立類似谷歌圈子的功能。

我的邏輯就是這樣。 註冊後,每個用戶都將擁有附屬於他們的圈子。

例如,如果用戶將簽署

方式提交及以下querys將insierted到數據庫

**id | circle_name  | user_id** 
------------------------------------ 
1  | circle one  | 1 
------------------------------ 
2  | circle two  | 1 
------------------------------ 
3  | circle three  | 1 

每圈將有一個primary key

但是這是林不確定所以在經過一段時間之後,我有點害怕表格會被破壞,如果它會達到多個id值,它實際上會停止產生更多的內容。

當您在數據庫中指定int時,默認值爲11,是的,我知道我可以將其設置爲值,但仍然給出更高的值是個不錯的主意?

或者是否有任何可能性使主鍵自動增量爲無限制?

感謝大家的意見和幫助出局

+0

對於它的價值,int字段的長度不是實際的長度。它基本上只對zerofill列有用(在我看來,零填充的功能不屬於數據庫)。你可以很容易地測試這個:嘗試在int(3)中插入一個5個字符的int。它會高興地接受它。類似地,'int'> 10不存在(因爲2^31-1或2^32-1是10位數字)。 – Corbin

+0

「如果您每秒24x7插入1M條記錄,則需要584542年才能達到限制。」 @ 9000 .... http://stackoverflow.com/questions/5762327/mysql-what-if-i-need-a-very-very-big-autoincrement-id – bipen

回答

13

或是否有可能使一個主鍵自動增加是無限的?

您可以使用BIGINT

嚴格地說,它並不是無限的,但是範圍非常巨大,即使你真的很努力地嘗試,也不會耗盡所有的值。

+3

你也可以使它無符號這將是可笑的大 – Dale

+0

非常感謝你的幫助 – Side

+1

除此之外,當你開始接觸到許多條目時,BIGINT已經不夠好了,你可以聘請地球上最聰明的人來解決你的數據庫問題。 –

3

只是運行一些數學,你會自己得到答案。如果長度可存儲數十億價值的,你不希望有新增100萬個註冊每週然後讓到它打破將是「幾乎」強硬一點,即使「理論上」可能