2012-08-04 56 views
0

我有像下面的關係表:MySQL表重新設計理念(關係)

ERD

我已經級聯下拉相互關聯,即箱子當您選擇該國報告的國家,地區將在下拉菜單中加載。但是現在我想將下拉菜單更改爲基於Ajax的自動完成文本框。

我的問題是,我應該有多少個文本框?我應該有一個像「按位置搜索」這樣的文本框,我需要更改表格設計,或每個類似國家,地區,城市等的文本框,

如果我有像這樣的文本框,用戶可能不知道,很少地方是否是地區或城市,例如奧克蘭,新西蘭是一個不是城市的地區。

他們可能在城市文本框從中尋找地區區域文本&搜索城市......現在,他們有一個下拉菜單,就可以看到自己的區域,「奧克蘭將在那裏以區域爲確保」

我可能沒有找到我想要的個人文本框,我需要一些關於從數據庫&接口的角度重新設計的建議。

+0

你如何設置一個像「郊區,城市,地區,國家」輸入格式的文本框,你可以在文本框提示中讓用戶知道,然後你發送字符串到你的php,用逗號分解「,」將它轉換爲一個數組,然後從最後一項開始尋找國家,當你有你的國家ID繼續進行並且在前一項數組輸入(因此區域)中選擇你的區域時on ... allthought你可以通過做一些檢查和猜測數組的長度來使這個更快,也就是說,如果數組只有2個項目可能是城市,國家 – Onheiron 2012-08-04 21:54:38

+0

你正在設計哪個國家? (如美國有國家,英國有縣等) – Cups 2012-08-04 21:55:30

+0

我現在正在爲新西蘭做它,可能是澳大利亞之後... – 2012-08-04 21:57:53

回答

2

您的模式很好。但它聽起來像用戶想要的至少是: 1.谷歌風格的自由格式的文本字段,他們只需鍵入單詞,但... 2.哪一個調出匹配結果的子集組合式時尚。

所以,這裏的交易:類似搜索功能不是關係數據庫的設計目的,這基本上是你遇到的問題。也就是說,MySQL雖然不是我的專業領域,但似乎具有合理的全文搜索支持(MySQL Full Text Search)。

也許你可能在每個描述字段上都有FULLTEXT索引併發出五個不同的查詢。或者,如果您願意使用骯髒的解決方案,請單獨使用BUSINESS_SEARCH(business_id,concat_description),其中concat_description只是所有相關的「說明」字段一起使用;儘管您需要考慮說明更新。

但我不知道FULLTEXT會帶來怎樣的性能影響。如果它不平凡,我會將這些查詢卸載到服務器的單獨副本。

我個人的感覺 - 完全沒有證據支持它 - 就是你會遇到性能問題。你有沒有考慮過附加組件?快速谷歌搜索引擎顯示Google-like Search Engine in PHP/mySQL。最大的缺點是你正在引入尚未被證實或不熟悉的技術的所有缺陷。

對於任何一種方法,我認爲你有一些研究切出來給你。

祝你好運!

+0

由...方式,你可能想爲UI創建一個單獨的問題。 – hythlodayr 2012-08-05 03:56:46

+0

我之前正在考慮對商業數據進行索引,現在作爲臨時解決方案,我正在考慮爲現有結構的位置編寫文本搜索查詢...我會盡快發佈並提出建議..謝謝 – 2012-08-05 05:14:20