让我澄清问题的标题。
我正在实现一个Web应用程序的后端。
这是我想在一个.html
文件
页面底部只有一个名为“全部保存”的按钮,可以将所有这些数据一次保存在数据库中(插入)。
问题?我在数据库中有两个单独的表。一个名为“pins”,将获取几何数据和表单数据。
另一个名为“多媒体”,将获取图像/视频。
现在“多媒体”有一个名为“multipin”的列,其中包含“引脚”ID,因此我可以将引脚和多媒体联系起来。
所有列包含ID都是“SERIAL”(每次插入时,id会自动增加+1)。
我在想,如果我同时进行两次插入操作,我就无法获得新的“引脚”ID并将其插入“多媒体”的“multipin”列。我必须等待创建新的“pins”id,然后将其插入“multipin”。
那么,两次插入(?)
我提出的解决方案是创建三个html
文件。首先,用户插入几何和表单数据。点击名为“点击此处添加多媒体”的按钮。现在,此按钮将数据发送到另一个插入“pins”的文件并获取新的id。重定向到第三个文件,并发送新的“引脚”。所以现在用户可以插入照片/视频,代码知道“引脚”id,所以可以把它放在“multipin”中。
听起来不错吗?有更好的方法或策略吗?
对于“一次保存所有”版本我正在考虑websockets ...对于“3个文件版本”?我应该只为多媒体使用“传统”ajax和websockets吗?
我为这个大问题道歉。我的英语(不是我的母语)
感谢您的时间
斯莱文
答案 0 :(得分:0)
一次保存对用户来说是一个更好的策略。
假设您正在使用事务性关系数据库,则可以通过以下方式保存所有内容。
插入您的图钉表数据。
提交
获取引脚顺序ID
插入多媒体
提交
如果多媒体有任何问题,您可以回滚多媒体插页并删除引脚表数据行以保持数据库的一致性。