2012-10-25 14 views
0

不幸的是,我所有的RDMS體驗都來自於使用我公司的專有數據庫技術,並且我正在努力尋找能夠將我的知識轉化爲PHP/MySQL實踐的類比。在新數據庫中安裝表,字段和靜態數據的標準方式是什麼?

在我的公司,我們定義定義表,字段,鑰匙,和這樣的「數據字典」的配置:

orders_Dct.cfg 
trades_Dct.cfg 
profiles_Dct.cfg 

一個這樣的配置文件可能是這樣的:

table 
{ 
    name ORDERS 
    fields (ORDER_ID, ORDER_VS, PRICE, QUANTITY) 

    key 
    { 
     name ORDERS_BY_ID_VS 
     sort (ORDER_ID, ORDER_VS) 
    } 
} 

field 
{ 
    name ORDER_ID 
    type CHARARRAY 
    size 8 
} 

field 
{ 
    name ORDER_VS 
    type I32 
} 

field 
{ 
    name PRICE 
    type F64 
} 

field 
{ 
    name QUANTITY 
    type F64 
} 

另外,我們定義「靜態數據」,例如profiles_Static.cfg

table 
{ 
    name PROFILES 

    entry 
    { 
     USER_ID 0 
     USER_NAME SYSTEM 
     SUPER_USER Y 
    } 

    entry 
    { 
     USER_ID 1 
     USER_NAME TEST 
     SUPER_USER N 
    } 
} 

我們然後運行命令,如InstallRemapLoadStatic基於這些配置文件更新數據庫。

現在,我當然可以編寫腳本,甚至可以複製我公司的工作方式,但我認爲在PHP/MySQL中必須有一些標準方法來完成此操作。我想知道是不是因爲根據像「mysql」,「database」,「dictionary」,「configuration」和「rollout」這樣的術語來搜索錯誤的術語,我只找到this question about a utility to create a database dictionary,至少第一次一目瞭然,似乎不像我在找什麼。 我想要一個簡單的基於配置文件的方法來設置數據庫表,字段,鍵和靜態數據。有人會指出我的方向是正確的嗎?

如果沒有這種「標準」的做法,那麼一定有一個很好的理由,我願意適應不同的做事方式。但是爲了這個目的必須編寫一個自定義腳本,這似乎很愚蠢!

在此先感謝。

+1

我想你可能會更好地描述你想要達到的目標,而不是你目前正在做的。例如,你想創建一個數據庫來重新安裝一些東西?也許有一些默認數據呢?或者你想有一個更新路徑來發布新的發展分支?或者它是一種備份策略? – Nanne

+0

@Nanne - 更多的練習比發佈,但我從頭開始創建一個網站模板。 (是的,我知道Ruby,Django等,但我想嘗試「重新發明輪子」)。網站模板將始終需要某些表,字段和鍵,我希望能夠加載用戶數據,產品數據等,我可以手動編輯文件。 –

+0

谷歌的一個好的關鍵字是「數據庫遷移」... – deceze

回答

3

你很幸運!有一整種語言致力於描述creation of database tablesinsertion of data into them。它也支持modification of existing tables

這種語言被稱爲.... SQL。


還有一個命令mysqldump,它可以從活動數據庫中生成SQL。

+0

我很欣賞誠實,我會重新考慮我是否真的需要的不僅僅是基礎知識,但我想我會想到會有一種實用程序或方法去除SQL的大部分冗餘。 (嗯,或者我的問題更多地與可讀性有關......) –

+2

SQL實際上並不是多餘的,可讀性往往更多的是格式化。正確縮進的SQL通常很容易閱讀。 – Amber

+0

呵呵。經過更多的思考,你是完全正確的。這一回答就在我面前。我公司的RDMS沒有查詢語言;一切都通過C++或Tcl API訪問。習慣了這個之後,我甚至都沒有想到我要找的''.cfg''文件幾乎可以翻譯成''.sql''文件!謝謝! –

相關問題