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

问题描述

| 为了做作业,要求我制作一个数据库表,该表对应一个百货商店的分支,该表必须包含以下信息:
CREATE TABLE STORE
(

id_store varchar (50),name_store varchar (50),city varchar (50),country varchar (50),region varchar (50)
);
我的问题是我们是否需要具有城市,国家和地区的字段,或者需要通过元数据信息来设置一个模式,该模式可通过主键id_state的分解为其提供信息?例如,前3位数字对应于国家/地区,后3位数字对应于城市,依此类推。     

解决方法

您将永远都不想创建一个系统,在该系统中主键试图对行中其他属性的数据进行编码。那是通往极大的心痛和痛苦的道路。 这使更新非常困难。例如,如果您确定墨西哥属于中美洲地区而不是北美地区,则必须仔细检查并更新墨西哥商店的所有主键,以及系统中引用这些主键的每个位置。这是一项巨大的工作,实际上难以完成,而且在运行时和测试方面这是一项非常昂贵的操作。 这使得查询数据更加复杂。现在,如果要查找墨西哥的所有商店,则必须编写代码,对
SUBSTR
INSTR
进行多次调用,以解析出行所在的国家/地区。这显然比建立索引更难索引,并且使优化器难以理解单独的列。确保没有代表墨西哥的\'MEX \',\'mex \'和\'mx \'行也要困难得多。 它违反了规范化的一般原则。城市,国家和地区是商店的独立可识别属性。应该给它们单独的一列。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...