在MySQL中是否可以使用2行或更多行共享列,例如C ++联合类型? 在没有更多空间和性能的情况下,我正在寻找的是什么?
答案 0 :(得分:3)
您所描述的“C ++联合类型”在您的评论中有更好的解释:
我有一张桌子很多行。每行有5列。现在,我希望行#1和#2共享列#1。当我说分享时,我的意思是:a)如果价值在一个中改变,它将改变为另一个。 b)空间不会加倍。
您所描述的是数据库最基本的部分:规范化和关系数据。
您有表国家/地区:
ID=1, countryname="Amurika"
和城市:
ID=1,countryid=1, cityname="Boston"
ID=2,countryid=1, cityname="New York"
ID=3,countryid=1, cityname="Boise"
如果您想获取记录,请执行以下操作:
SELECT cities.name, countries.countryname
FROM cities INNER JOIN countries on countries.id = cities.countryid
你得到记录:
name countryname
------ -----------
Boston Amurika
New York Amurika
Boise Amurika
您会注意到“Amurika”只存储在一个地方,如果您更新一次:
UPDATE countries SET countryname="America" where id=1
你现在得到:
name countryname
------ -----------
Boston America
New York America
Boise America