如何解决在进行实体映射时,可以删除/插入而不是DIFF / UPDATE吗?
假设我有一个活动,我想让人们参加。
创建活动时,我会做...
INSERT INTO event (eventName) VALUES ('some event'); -- eventId = 1
INSERT INTO eventPeopleMapping (eventId,personId)
VALUES
(1,1),-- Person 1
(1,2),-- Person 2
(1,3),-- Person 3
-- hundreds more...
;
现在,如果我想删除Person 3
但添加Person 7
怎么办?
DELETE FROM eventPeopleMapping WHERE eventId = 1;
INSERT INTO eventPeopleMapping (eventId,7),-- Person 7
-- hundreds more...
;
这是一种好方法吗?
注意::这是针对数百人的,并且经常更改。
比较数组和对象以查找差异,然后在数据库中寻找值太麻烦了。这似乎很简单,但是我不知道我是否缺少任何东西。
我看到的唯一缺点是映射ID的 TON ,并且它们不断变化。
解决方法
您的方法有效,但需要了解活动中的所有人。更常见的是,您将只删除要删除的行,然后仅插入新行:
DELETE FROM eventPeopleMapping
WHERE eventId = 1 AND personId = 3;
INSERT INTO eventPeopleMapping (eventId,personId)
VALUES (1,;7) -- Person 7
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。