我正在开发一个存储软件,其中MySQL和PHP本地数据库将同步到联机数据库。如何在联机和本地MySQL数据库同步时创建主键
假设我有一个表卖,sell_id是表的主键。我通常使用INT和主键自动增量。
在本地数据库1卖出表具有2条目(sell_id 1,2)和本地数据库2卖出表具有2条目(sell_id 1,2)。
如果我将这两个本地销售表条目同步/插入到在线销售表中,它将变为(sell_id 1,2,3,4)。
由于出售ID变化,它会影响其他表中使用sell_id作为外键的其他表中的条目。
我应该如何计划建立在这种情况下主键。
我打算使用字母数字 id,这对于两个数据库都是唯一的。它会创建任何问题或进一步减慢我的数据库查询数百万的sell_id?
是否有任何其他方式来解决这个问题?
使用过程来选择要从本地数据库导入的所有内容,然后将ID更改为新的sell_id并进行正确的插入。或者创建一个触发器来更改所有的sell_id的 – nada
如果你的主键是一个INT或CHAR,那么不应该有太大的差别,性能方面,尽管有一些带有'VARCHAR'和'MyISAM'表的弱点,但是什么也没有太可怕了。你最大的问题可能是首先产生这个价值。 – CD001
您可以有一个额外的列标识客户端,并使用作为主键。这样你就会知道一个给定的元组从哪里来。但是我不清楚这些元组是否可以引用相同的* object *;在这种情况下,您可能需要与SKU等效的东西。对于购买等,应该工作。对于客户,您还需要某种双向同步。 –
LSerni