2011-08-26 61 views
3

我想給用戶提供從一個站點到另一個站點的一個WordPress插件安裝導出數據的功能。一個「WordPress插件」並沒有什麼不同,我推薦使用推薦的方法來導出/導入數據存儲在MySql數據庫中的PHP應用程序中。數據在數據庫中相互關聯。導出和導入數據從一個用戶安裝到另一個

我在有趣:

  • 這是存儲導出文件的數據建議的格式(JSON,XML序列化)?注意數據是通過每個MySql表中的字段相互關聯的,並且可能非常大。

例子:

學生表有:ID,名稱和...類標識碼

類別表有:ID,說明...

  • 這是建議避免可能會影響導出或導入大量數據的託管配置的特定用戶問題?

例如:執行時間,最大文件大小,允許的最大數據庫查詢


重要採取照顧該目標系統可能已經有聲明爲字段中的值相同的數據鍵,例如:

我與

ID = 5,說明導出類= 「這是涼類」

和在目標數據庫中可能已經是類具有:

ID = 5,描述=「這是其它舊類」

其中ID是在「類」表的主鍵。


解決這個任何想法,將不勝感激。 如果需要其他信息,請告訴我。

謝謝先進。

+1

使用mysqldump。它會將數據庫的內容導出爲一系列SQL查詢,這些SQL查詢將重新創建表格和數據,與創建轉儲的服務器上的數據完全相同。您可以將該轉儲文件提供給新服務器上的'mysql'命令,然後繁榮...(最終)數據庫的即時副本。與所有數據/鍵/觸發器/表結構/等...重複。 –

+0

謝謝,但這並不能解決目標系統已經在聲明爲鍵的字段中具有相同值的數據的情況。我用這個案例更新我的問題。 – leticia

+0

然後您唯一的選擇是手動按摩數據以防止任何按鍵衝突。 –

回答

1

我建議你將數據寫入XML。這意味着您必須在導出時構建XML,然後您必須在輸入時讀取XML文件。這樣,您可以控制格式,並且可以更改在插件版本之間處理導入的方式。

如果需要,我可以添加更多關於如何執行此操作的詳細信息,但看起來您只是在尋找有關常規方法的信息。

+0

謝謝,你爲什麼認爲Xml會比JSON更好或只是序列化數據?我同意Xml允許我「按摩」像@ marc-b所說的數據。 – leticia

+0

JSON也可以很好地工作,因爲您可以構造數據。我傾向於使用XML,但是現在有足夠的工具可以操縱JSON,因爲它們是等價的。我肯定會對數據庫轉儲感到害羞,因爲如果您在不同版本之間更改數據庫模式,將會出現問題。 – pocketfullofcheese

+0

+1,謝謝你的回覆 – leticia

相關問題