2012-07-16 74 views
1

我想構建一個小工具來保存數據庫中有用的代碼片段。但不知道應該使用哪種數據類型來保存所有代碼。 special characters有問題嗎?我可以使用String來保存代碼嗎?你能給我一些建議嗎?先謝謝你。設計數據庫以保存html,jsp,java,javascript等代碼

UPDATE

我正在準備做一個表所示:

- ID(UUID) - - 名稱(字符串) - - 類型(字符串) - - 代碼(字符串) -

保存代碼。有小費嗎?

UPDATE

這裏的想法:

  1. 使用文字並設置正確的字符集。我想我會用UTF-8
  2. 使用BLOB存儲代碼

我不知道,哪一個更好。我需要一個關於這個的講座。

+0

其VARCHAR,當談到喜歡的東西SQL。同樣根據我對未知長度的varchars的回答,數據類型是文本。 Blob是varbinary的未知長度版本。 – 2012-07-16 10:01:02

回答

2

ID使用text數據類型,因爲您可能正在存儲任何長度的數據,還請確保使用正確的字符編碼,以便您可以表示您需要的符號。

僅供參考這裏是TEXT/BLOB http://dev.mysql.com/doc/refman/5.0/en/blob.html

+1

如果語言對空白敏感,我不會使用文本,而是使用blob。例如,如果一個表包含'a',則存儲'a'的嘗試會在MySQL中導致重複鍵錯誤。對於BLOB列來說這不是真的。 – fuzzyanalysis 2012-07-16 10:04:04

+0

沒有想到這一點,但你說你永遠不會使用'文本'呢?我使用它很多,從來沒有任何問題。我只有在存儲圖片/ pdf等文件時才使用BLOB。 – 2012-07-16 10:08:08

+0

其實我同意你的觀點,TEXT會更適合搜索數據庫:)。 – fuzzyanalysis 2012-07-16 10:32:39

1

MySQL參考如果存儲代碼爲BLOB(字節[])應該沒有字符集問題

+1

無論如何,在數據庫上使用正確的字符集將消除此問題。當它明確顯示文本(因此是varchar/text)時,沒有看到任何以二進制格式存儲的東西。 – 2012-07-16 10:02:34

+0

同意。僅供參考 - 您不必將整個數據庫設置爲使用一個字符集,就可以按列設置字符集。例如,在MySQL中有一些命令可以在列中的字符集類型之間進行轉換:http://dev.mysql.com/doc/refman/5.0/en/charset-conversion.html – fuzzyanalysis 2012-07-16 10:58:29