2010-06-22 19 views
3

我們有一個由Parallels構建的系統,它依靠巨大(800+)的表來維護所有內容。爲mySQL數據庫打印ER圖(800多張表)

我需要學習這個系統,以便能夠編寫查詢來檢索數據以生成各種需求的報表。

很明顯,在分離哪些表格當前與手頭任務相關時存在困難,所以我認爲最好的方式是在整個系統表格上生成並打印多個頁面的ERD。

我試圖拖動所有使用TOAD的表 - 它墜毀了:) 第二次嘗試時,我拖動表A-N,經過(很長時間)後,M-Z表成功。

我甚至設法讓它們全部調整大小,安排並將ERD保存到文件中。

但是,當我進入打印或預覽,打印子進程崩潰嘿嘿。

關於如何打印這個龐大的ERD的任何建議?或者另一種方法?表名不似乎是自我解釋,所以我不能(實際上,並不真正想)超過800多張表,並希望我不會錯過我所需要的,或部分。

在我甚至開始真正編寫腳本和代碼之前,我將不勝感激任何關於如何繼續的建議或想法。

數據庫在CentOS下的CentOS下,有些表是InnoDB,有些是MyISAM。 許多表似乎都有外鍵。

謝謝!

+2

即使您自動執行此操作,我從來沒有見過任何以邏輯或有用的方式排列表的應用程序。所以我仍然建議你手動做一些。 – MJB 2010-06-22 11:37:17

+0

這是真的,把它分解成「邏輯包」 – 2010-06-22 11:39:49

回答

7

我曾在擁有幾百桌的地方(近1K),沒有人真正知道發生了什麼事情在系統中,公司的成長和僱傭了很多。一個人負責做一個圖表,他自動地創造了一張巨大的瓷磚海報,其中包含了連接各種表格的線條(遍佈各處)。我不確定他用了什麼,多年前就是Unix和Oracle(在Linux和開源之前)。他的圖表中的表格佈局沒有真正的韻律或理由。他成功創建了每張桌子的圖表。 「海報」被放置在公共區域的牆壁上,並有幾個外觀,但沒有人真正使用它,它不可用,太雜亂,太無組織。因此,我使用MS-Word來創建一個包含20個主表的單頁面圖表(它通過幾次迭代,因爲我發現了新的主表),每個外鍵和每個表以邏輯方式。我展示了列名,數據類型,可空性,PK和所有FK。我用監視器將我的圖表放在牆上。最終,每個人​​都需要我的圖表副本,包括製作「海報」的人。當我離開那份工作時,他們仍然在給我的圖表添加新員工。

我建議你像探險家一樣工作,找到關鍵表並將它們映射出去,在發現系統時製作儘可能多的特定圖表。試圖自動製作一個巨大的「海報」不會很好。

+0

完全正確!我已經多次使用大型數據庫(超過800 +到1,5k表,而不包括db_links)。無法知道所有數據庫的模式的每個部分。作爲KM。多次說你總是使用20-50張桌子。其他更專門針對其他服務的業務規則。有時候你也會使用舊軟件中的舊錶,但是db建築師喜歡將它保存在實際的數據庫中。 「我們永遠不知道有一天我們需要找到這些信息。」您需要拆分符合業務規則的模式和模式讀取會更有用。 – aviel 2014-02-24 21:17:42

5

你試過mysql workbench? 如果您不介意windows,則可以嘗試Enterprise Architect以及

+1

這確實是這樣。但是不會有表格的邏輯順序。他們很可能會彼此超過,所以你需要單獨重新排列它們。 +1 – DrColossos 2010-06-22 11:44:56

+0

EA可以在各種佈局中爲您進行佈局,這非常酷。雖然打印出來......他將需要相當多的紙張:) – 2010-06-22 11:47:22

+0

請參閱我在mysql工作臺下面的關於Sinter的文章的筆記。 我啓動了EA試用版 - 但我無法找到如何與數據庫一起工作..連接到它,導入它或什麼 - 所以我可以將表導入ERD。 – Carmageddon 2010-06-24 08:59:40

1

MySQL Workbench具有一些用於從創建腳本進行反向工程的強大工具。我沒有用它來處理這樣的大型數據庫,但你應該檢查它。

鏈接:http://wb.mysql.com/

+0

我安裝了WB,但是我無法檢索數據庫模式: [code] 獲取模式列表。 操作失敗:表'information_schema.schemata'不存在 [/ code] 我也手動查找它 - 看起來模式已被刪除。 我也試過菜單選項Database-> Reverse Engineer,也試過Synchronize Model選項,都想要schema。 – Carmageddon 2010-06-24 08:33:57

+0

你使用的是什麼mysql版本?它可能是一個版本差異問題。 – 2010-06-24 10:27:41

+0

服務器版本:4.1.20-標準 – Carmageddon 2010-06-27 14:50:35

0

IIRC,MS Sql Server有一些用於製作圖表的好工具,我知道它非常有幫助,您可以添加一個表格並自動添加所有相關的表格。如果您可以將表格轉換爲MS SQL兼容的SQL腳本,這可能會有所幫助。

+0

我只讓他們在正在運行的生產系統上工作,我不想冒險破壞系統。 你可以建議一個簡單的無風險的方式轉換爲MS SQL嗎?那麼我會加載它並嘗試你建議的功能。 – Carmageddon 2010-06-22 15:24:51

+0

一個簡單的解決方案是獲得無數據的MS SQL兼容的sql轉儲,這將是一個只有create table語句的文件。然後在sql server上運行它。您可以使用'mysqldump -u user -p --no-data --skip-triggers --compatible = mssql databasename>/path/to/file.sql'獲取轉儲。更新:從mysqldump手動:此選項不保證與其他服務器的兼容性。它只啓用當前可用於使轉儲輸出更加兼容的SQL模式值。所以,如果你有錯誤,你將不得不編輯sql(查找和替換)。我仍然認爲這是值得一試的。 – ceteras 2010-06-22 21:05:51

0

Navicat 10.1和更高版本可以完成這項工作。使用它的模型工具並將數據庫導入它,然後重新安排。打印結果PDF或直接打印機。