在上传文件的帮助下,我正在批量创建许多不同的相关模型。有没有办法使整个过程像与用户的对话,但将其保持在尝试捕获事务环境中?我的意思是,例如,在过程中,有两种可能性可供选择,用户可以选择一种,或者"你确定要那个吗?"等等,然后这个过程会更进一步?
我能想到的最简单的方法是以下几种。
导入表作为中间存储
- 导入
- 时,将文件读取到"导入"表中。csv 或文本文件的每一行各有一条记录。保存阅读时的整行。 在保存之前
- ,断言之前没有保存相同的行(唯一索引?
- 然后在上传后调用的另一个控制器操作中迭代此表中的所有条目。处理数据并立即保存或在必要时询问用户。
- 从导入表中删除该行或将其标记为已导入。后者的优点是您可以跟踪已导入的行,但在一定间隔后需要进行一些清理以防止数据膨胀。
- 做!
表结构
举个例子...以下是可用于 MySQL 的创建语句:
CREATE TABLE `import` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`is_imported` tinyint(1) NOT NULL DEFAULT '0',
`data` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
我认为这更容易,我将这样做,我将把所有数据发送到一个新表单(还有其他可能的属性可供选择),用户可以在其中选择运行事务所需的一个或多个附加信息无问题。