我想了解這個概念。例如:我有兩張桌子城市和國家。基本桌面設計Q
Country
-------
id
abbreviation
name
City
-----
id
name
Country (name or id, or both? - This is the question)
要引用,並保持特定城市同步與它所屬的國家,我想這將是參考country.id爲FK。這意味着城市表的一個例子是:(200,紐約,19) - 其中19 =美國在國家表中。但是,這並不能幫助觀看桌子的人,因爲他不知道什麼是19,而不是在國家桌子上查找什麼是19。
所以我想把這個國家的名字也加到城市表中,所以它寫道:(200,紐約,美國)。我不需要顯示19,因爲19對讀者沒有用處,但僅用於連接表格。
那麼,我應該怎麼做我的表格colunms/FK看起來像我可以存儲在這樣的城市表格行(200,紐約,美國),但確保紐約將永遠參考美國在美國查找,並保持19這是美國走出城市桌的主要關鍵,所以桌子看起來乾淨,容易理解?我假設如果這些被引用,明天如果我將美國更新爲20,它將在城市表中自行更新,如果我將美國重命名爲美國,它將自行更新到城市表中。
- 我的DB是在MySQL
更輸出。如果我使用城市查找表作爲autosuggest,我想顯示:美國紐約。這是最終目標。爲了得到它,這意味着我必須查找城市,然後看到19國的參考,在國家表中找到19並輸出美國,所以它讀取美國紐約。 ...但是如果我在城市表中有國家名稱,那麼這是一個簡單的輸出,不會觸及兩個表格。注意:這僅是示例。我有數百個這樣的查找需要創建acoss多個表,因此我試圖理解所有這些基本概念。 – Ian 2010-10-10 02:52:41
我想確保如果我在城市表中保留國家/地區名稱,它仍然與它的父國家/地區表有關,因此任何未來的名稱或ID更改都會反映到所引用的所有表上。 – Ian 2010-10-10 02:54:09
哈哈,所以你認爲從一個簡單的連接性能打擊會花費你很多,它是值得的,以保持你的表格不正常的形式? – 2010-10-10 03:07:43