首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL中创建表,并利用元数据

在SQL中创建表,并利用元数据
EN

Stack Overflow用户
提问于 2011-04-14 06:46:49
回答 1查看 232关注 0票数 1

对于家庭作业,要求我制作一个DB表,该表对应一个百货商店的分店,该表必须包含以下信息:

代码语言:javascript
复制
CREATE TABLE STORE
(

id_store varchar (50),
name_store varchar (50),
city varchar (50),
country varchar (50),
region varchar (50)
);

我的问题是,我们是否需要城市、国家和地区的字段,或者通过元数据信息,我可以设置一种模式,通过分解主键id_state来提供这些信息?例如,前3个数字对应国家,后3个数字对应城市,以此类推。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-14 07:13:31

您永远不会希望创建这样一个系统,其中主键尝试对有关行中其他属性的数据进行编码。这就是通向巨大心痛和痛苦的道路。

  • 它使得更新变得非常困难。例如,如果您确定墨西哥属于中美洲区域而不是北美区域,则必须遍历和更新墨西哥商店的所有主键,以及系统中引用这些主键的每个位置。这是一个巨大的工作量,实际上不太可能完成,而且这是一个非常昂贵的运行时和测试操作。
  • 它使得查询数据变得更加复杂。现在,如果您想要查找墨西哥的所有商店,您必须编写多次调用SUBSTRINSTR的代码来解析一行所在的国家。这显然比单独的列更难索引,也更难让优化器理解。也很难确保没有'MEX‘、'mex’和'mx‘行都代表墨西哥。
  • 和它违反了规范化的一般原则。城市、国家和地区是商店的单独可识别属性。应该给他们一个单独的专栏。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5656584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档