我正在开发一个系统,以前的开发人员喜欢在单个单元格中保存多个值。请参阅下面的 DDL:
create table visits (id int, values varchar(100))
INSERT INTO visits values (1, '01/01/2000, 1')
INSERT INTO visits values (2, '01/01/2000, 2')
INSERT INTO visits values (3, '01/01/2000, 3')
第 1 行表示客户 1 于 2000 年 1 月 1 日访问了该商店。第 2 行说 2000 年 1 月 1 日,客户 2 访问了商店等......
我知道这很可怜。我想不出一种合理的方法来解决这个问题,因为应用程序有很多数组可以拆分“值”的内容。我想这样做:
create table visits (id int, visitdate datetime, customerid int)
但是,这样做会导致错误,因为拆分值列的数组只包含一个值而不是两个。我相信我必须重构整个代码库来解决这个问题,即删除数组。但是,还有其他方法可以解决这个问题吗?