2013-08-02 64 views
0

我的社區網站將通過註冊表格,將有三個列表框的地塊,樓面數和門數採取居民登記。指數/重點領域到另一列

我的第一個問題是 - 因爲我需要找回公寓數量對於某些操作,將存儲在三個字段在三個不同的列放慢的數據/報告的檢索?難道是一個更好的主意,另一個字段添加到存儲連接的值,並使用檢索表?我的第二個問題是:如果我要走級聯路線,是否在發送到數據庫之前將它們連接起來(在處理php中),還是將表中的列設置爲它會影響結果採取了表中的三個值,並執行concat?

編輯

基礎上的反應,一點解釋可能會在此處添加值:

我的表單/表是爲各成員的意見和建議。查詢表格可能是:

  1. 由會員檢查他們的投訴狀態。每天可能會有20個這樣的電話 - 很少會超過這個。
  2. 由管理員呼叫從管理頁面的報告 - 這可能是未答覆的投訴,解決投訴,發送感謝意見的建議,等等。這也可能意味着得到未解決的投訴每塊等
  3. 由管理員當他回覆該成員時 - 這會調用記錄的更新。
  4. 成員提供的新的投訴或建議發送。

因此,有效地,查詢可以通過單個公寓號碼或區塊名稱來查詢。我已經有分別採用三欄S和因爲它涉及到一個記錄檢索這不是一個問題,一檢查投訴的地位形式。比方說,如果有三十條記錄會出現在B-block報告中呢?還是一百?在這種情況下,檢索連接會成爲問題嗎?

+0

有三個字段,然後與這三個字段組合的數據相同的另一個字段只是複製數據。根據需要連接它們。 – ironcito

+0

速度真的不應該是一個單一的註冊問題...我會根據我最喜歡的代碼在哪裏選擇連接的位置;) – kwishnu

+0

我認爲這將是一個偏好問題。我個人而言,公寓號碼可能值得額外的數據庫專欄。根據您如何查詢數據庫中的信息以及將哪些字段標記爲索引,存儲不應放慢速度。 – Crackertastic

回答

0

Q將存儲三個不同列中的三個字段減慢數據/報告的檢索速度?

A不,它不會減慢檢索速度,只要數據類型合適即可。 (使用int或VARCHAR,而不是長長的CHAR。如果這是您更容易對付,當你找回它們並置的值,然後做檢索的連接。

SELECT CONCAT(t.block,'|',t.floor_number,'|',t.door_number) AS apartment_number 

這不會延緩任何東西了。

在另一方面,如果你沒有必要EVER查詢或更新這些個別領域,你將永遠地處理它剛剛apartment_number ...那麼你可以只爲apartment_number創建列。

在哪裏如果你需要從apartment_number中解析出單個字段,性能將會下降E,如果你需要檢索行,其中的門數分量是偶數,或所在樓層數大於1 ...這就是當事情進展放緩。

我會將它們存儲爲獨立的字段,因此如果需要的話我可以訪問各個組件。例如,我可以回答這樣的問題,如第3塊第2層有多少個門號?