我们有一张桌子:
message (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`subject` VARCHAR(255) NOT NULL DEFAULT '',
`message` TEXT NOT NULL,
`attachment` VARCHAR(255) NULL DEFAULT NULL,
`new` TINYINT(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
现在我们需要多个附件 目前只保存一个附件链接。解决方案可能是在列中添加另一个外键表或使用逗号分隔值。但是我们需要一个更好的解决方案,可以使用旧系统和新的,而不需要太多改动。有什么建议吗?
答案 0 :(得分:5)
正如@BurhanKhalid所说,任何解决方案都需要更改您的应用程序。您应该只是正确地使用带有外键的单独attachments
表来规范化您的数据。 要支持旧版应用版,请将attachment
列单独保留在原始表中,然后创建一个触发器,将其填充到添加到新规范化表中的第一个附件链接。从长远来看,您希望修复旧版应用以使用新表,然后弃用旧列。
答案 1 :(得分:1)
首先,更改您的表格,使attachment
的类型为TEXT
,然后序列化您的附件(例如,json或xml)并将其放入attachment
列。< / p>