我有一个数据库和下表。
Entity (ID, EntityType),
Tickets (TicketId, ..., (TicketId refers Entity (ID)),
Contacts (ContactId, ..., (ContactId refers Entity (ID)).
我想在另一个表中复制票证数据,
TicketsDup (TicketID, ...).
在ticketsdup表中,ticketid应该引用实体表还是tickets表?
ticketsdup的作用是只存储活动的票证。因此,不活动的票证将从ticketsdup表中删除。但仍将存储在票务表中。用户可以将票据标记为活动的。在这种情况下,必须将票据插入ticketsdup表。此外,修改后的时间必须在票证表中更新。这就是我关心的地方。当插入子行时,mysql会阻止父行更新。这会导致死锁。将实体表引用为ticketsdup表是否错误?我希望这个问题不含糊。
1条答案
按热度按时间rlcwz9us1#
我建议将每个新票证写入store表,然后将其复制到活动表中。所以id字段没有任何问题。
如果活动表中的票证已关闭,则将数据复制到存储表中,并将其从活动表中删除。
如果搜索票证,则首先搜索活动表,然后搜索存储表。
如果存储表中的票证标记为活动,则将其复制回活动表。
但是如果你没有那么多票的话,我只能坐一张table。我在一张table上放了6年的票,而且速度不会变慢。把它们标记为活跃和非活跃。我甚至不删除一张票,只是标记它已删除。