我正在開發一個存儲軟件,其中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