我想了解这个概念。例如:我有两张桌子城市和国家。基本桌面设计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