2011-05-01 46 views
4

我正在構建一個網站,其中包括用戶提交評論。現在,想要保存不同的評論..我讀了一些關於Linq的SQL和ADO ..他們都在討論如何存儲名字,電子郵件,密碼等小部分信息。但什麼是最有效的方式來保存消息將結合到YouTube上的頁面)?如何在數據庫中存儲段落?

+0

編碼/文化是一個問題嗎? – 2011-05-01 12:12:35

+0

@Caspar:爲什麼它應該是一個問題? – 2011-05-01 12:28:57

+0

@Matti Virkkunen取決於你想存儲的字符nvarchar或varchar可能會有所不同。 – 2011-05-01 12:36:20

回答

6

我認爲對一個網頁的評論仍算「小比特」。只要確保你的數據庫中的字段有足夠的空間(如果支持nvarchar(MAX),否則textntext,這取決於你所選擇的數據庫)

我不認爲你需要開始考慮訪問數據的其他方法,除非你有幾十個每個對象的數據量爲千字節,或每頁大量的對象。

+0

我應該使用字符串builder ..或其他編碼方法..以防止字符串被視爲一個對象? – 2011-05-01 15:13:18

+0

@Dmitry:我不知道你想說什麼。謹慎闡述? – 2011-05-01 17:23:45

1

完全相同的方式。您還希望在將消息插入數據庫之前對其進行html編碼,以避免不必要的sql注入。 Linq沒有這樣的問題,因爲它使用參數來插入文本。

你應該更喜歡基於參數嵌入的sql +編碼插入文本。

+0

我不認爲你應該在數據庫中編碼任何東西,你會想在輸出端進行編碼因此很容易在之後更改格式/過濾。 – 2011-05-01 12:04:51

+0

您應該始終使用基於參數的方法(與嵌入式SQL相比)。所以編碼是沒有必要的。 – Kon 2011-05-01 12:05:03

+0

這是最簡單的解決方案,但是你就在這裏 – 2011-05-01 12:05:40

0

MSSQL數據庫中有一個text數據類型。您可以使用它進行評論。然後在程序中,這只是一個普通的字符串。

編輯:由於text將被棄用,只需使用varchar(max)作爲別人說。

+0

文本將在下一版本的Sql Server中被棄用。 – CJM 2011-05-01 12:07:25

+0

很高興知道,謝謝。 – Damb 2011-05-01 12:07:45

1

在過去的時光,你會使用過時文本數據類型,但它會在下一版本中被刪除,因此建議您使用VARCHAR(最大值)

+0

我的建議是,他必須使用nvarchar(max) – 2011-05-01 12:11:58

+0

文字已被棄用,並且自SQL Server 2005以來。您的意思是文本將在下一版本中刪除。 – 2011-05-01 12:18:47

+0

@MM:非常正確。 – CJM 2011-05-01 13:50:25

0

你也可以使用ntext數據類型。我用它來表達文字。

+0

Microsoft建議使用'nvarchar(MAX)'而不是'ntext'。 – 2011-05-01 12:16:11

+1

感謝您認識我。 – 2011-05-01 12:17:10

相關問題