2008-12-07 53 views
2

我正在考慮爲我的妻子編寫一個簡單的數據庫應用程序,但我掛在良好的編程習慣,並希望有一個人類可讀的來源來存儲數據庫架構。用於讀取數據庫模式的外部庫或迷你語言?

只是,我不知道任何工具的工作,我不相信他們不存在---可能我只是不知道該問什麼谷歌,但我不是找到他們。

那麼,有什麼庫或其他工具支持從純文本文件讀取數據庫架構。


要invenetix的問題:我希望產生在編譯時的數據庫創建代碼或包括在釋放模式的描述,並建立從在運行時的描述數據庫。 Draemon的建議會很好,但如果我可以幫助的話,我不想被鎖定在預定的RDBMS中。

也許我應該說我以前在編程項目中使用過數據庫,但從來沒有對創建代碼負責。

可能我現在正在過度設計這個問題。

回答

4

只需使用SQL。 SQL不僅是一種查詢語言,而且是一種DDL(數據定義語言)。例如,如果你正在使用mysql;你可以根據你的需要設計你的模式,運行mysqldump,它將用DDL語句創建一個SQL文件。整理架構,然後您可以隨時通過獲取SQL文件來加載架構。就我個人而言,我只是在文本編輯器中編寫SQL模式並將其加載到mysql中。

這將適用於mysql,postgresql,oracle和其他任何數據庫。

+0

謝謝。 +1。類型信息中是否存在顯着程度的RDBMS依賴性? – dmckee 2008-12-07 03:15:01

+0

是的,不幸的。除了最簡單的數據庫以外的所有數據庫,您都不可能定義一個模式文件。但考慮到不同的數據庫做了簡單的事情,例如自動遞增鍵,這並不奇怪。您可以維護等效的模式或使用像SQLFairy – Draemon 2008-12-07 08:32:30

+0

SQLFairy作爲一種工具是非常有前途的。再次感謝。 – dmckee 2008-12-07 23:43:52

0

我無法給出評論,但如果我理解這個權利,您希望應用程序或庫根據文本文件中提供的數據構建架構?

您能否提供您正在尋求完成的示例工作流程?哪一步是你遇到問題的那一步?

+0

查看對該問題的編輯。謝謝。 – dmckee 2008-12-07 04:26:50

1

我想我現在明白了一點。儘管市場上的每個SQL解決方案都應遵守某些ANSI SQL標準合規性級別,但它們都會提供某種自定義數據類型,這些類型可能不會在另一個SQL Server解決方案中共享/使用/識別。 (例如,DATE,DATETIME,TIME,YEAR和TIMESTAMP),而在MS SQL 2000中,你只有一對(DATETIME或SMALLDATETIME) 。您必須確保您願意支持的解決方案之間最終生成的模式是常見的。

MySQL Data Types

MS SQL 2000 Data Types

這是否幫助?

1

SQLite不保留其數據的文本格式,但它可能會做你喜歡的。

它非常適合嵌入式數據庫 - 沒有服務器,沒有設置,並且數據庫位於可以由應用程序管理的單個文件中。

http://www.sqlite.org/

1

你可能想看看http://www.codesmithtools.com/。該工具旨在讀取數據庫的模式,並允許您基於該模式創建代碼模板。它有一個用於訪問模式數據的抽象庫。