我根据ISO 3166 3个字母的国家/地区代码存储带国家/地区代码的地址。如果我想显示未缩写的格式,那么进行这样的转换的最佳OO方式是什么?
答案 0 :(得分:3)
这一切都归结为JOIN
:您需要有一个countries
表格,其中国家/地区代码为主键,另外还有一个name
列,并将其加入原始列表中表。这只是基本的数据库设计,与OOP无关。
另一种方法是做两个查询,这只有在你需要不超过少数几个国家时才可行 - 否则,查询数量会急剧上升。
这取决于你的ORM如何将它与你的OOP代码集成;您可能必须在视图中包装已连接的查询(这可能是一种很好的做法)。
答案 1 :(得分:2)
创建一个名为countries
的表,它将存储3个字母的代码(可以是主键),然后存储全名
因此表结构可能如下所示:
short_name | full_name
OR 您可以创建一个数组,其中包含短名称作为键,全名作为值 类似的东西:
$countries['USA'] = 'United States of America';
$countries['JPN'] = 'JAPAN';
....
然后查看使用此数组的全名,该数组可以在包含文件中,您可以轻松地重复使用。
答案 2 :(得分:1)
在您的数据库中包含具有完整标题和国家/地区代码的国家/地区。
然后只查询您的数据库。你可以设计一个对象来帮助你。