数据库设计 – 为什么要在SQL文本列中存储分隔列表?
我必须维护一个具有大量文本数据类型的列的应用程序,其中插入了多个值,用逗号,斜杠或有时甚至管道(|)字符分隔.我想弄明白你为什么要在地球上做这件事.
例如,订单表有一个名为details的列,其中包含以下信息: 2x #ABC-12345 Widget,Black: $24.99 /4x #ABC-12344 Widget,Blue: $23.50 /分隔行项目;有一个VBScript代码从记录集读取值并在For循环中解析它以显示使用类似的东西(这几乎就是代码读取的方式,变量名称和所有)arydtls = split(rstmp(“details”) ),“/”).在整个代码中针对各种表重复该方法. 在我看来,它只是100倍更好(更不用说更容易使用)只是将细节放在一个单独的表中并链接回它(有趣的是,对于Orders它确实这样做,但数据不是始终匹配详细信息文本字段,因为OrderDetail表在代码中更新;详细信息字段在应用程序中被视为只读. 我的前任是否知道我没有做过的事情,或者说“WTF?!!”我是对的.当我看这个架构?它看起来像是非常低效且难以像这样维护,并且它使得运行报告更加困难,因为我需要的数据可以包含在文本字段中,或者它可能在十几个表中具有相似信息并且用于不同的表中部分应用程序. 解决方法
不,你的前任没有.是的,你是对的.但是,请参见最后的注释.
这是非常低效的.但是,请参见最后的注释. 列应始终是行的不可分割的属性.我在本专栏中看到了两个三个(可能是四个)属性的副本: 2x #ABC-12345 Widget,Blue: $23.50 >量(2x / 4x). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |