0

我们有一张桌子:

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`)
)

现在我们需要有多个附件
目前只保存一个附件链接。一种解决方案可能是添加另一个外键表或在列中使用逗号分隔值。但是我们需要一个更好的解决方案,它可以使用旧系统和新系统,而不需要太多改动。有什么建议么?

4

2 回答 2

5

正如@BurhanKhalid 所说,对此的任何解决方案都需要更改您的应用程序。您应该正确地做,并attachments使用带有外键的单独表来规范化您的数据。 要支持旧版应用程序版本,请attachment单独保留原始表中的列,然后创建触发器以使用添加到新的规范化表中的第一个附件链接填充它。从长远来看,您希望修复旧应用程序以使用新表,然后弃用旧列。

于 2012-07-17T05:25:31.737 回答
1

首先,更改您的表,使其attachment类型为TEXT,然后序列化您的附件(例如,作为 json 或 xml)并将它们放入attachment列中。

于 2012-07-17T04:33:27.980 回答