2010-06-09 87 views
2

到目前爲止,我所有的(家庭)CF學習都是使用Access作爲數據庫來完成的,並且就數據庫而言,我「得到它」。沒有數據庫服務器,也不需要登錄到數據庫或其他任何東西,並且設置表關係很容易且可視化。哦,它基本上可以自由部署。什麼數據庫是MS Access for Coldfusion的良好進展?

但是,我現在正在研究一個可能用於多個企業,可能多達50個併發用戶的應用程序。我聽說Access真的不符合多用戶使用或應用程序的生產使用。你會推薦什麼樣的更合適的,最好容易掌握的,只需要最少的tweeking(我使用了一個工具來轉換爲MySQL,它當然處理不同的連接,我不想做太多的調試),可視化界面可用的,可擴展的,可回遷的,以及我需要的任何其他我還不知道我需要的東西!

+0

你想重新平臺你的數據庫,你不想調試太多?這可能不是你最適合的職業道路。我是真誠的。我們將應用程序從同一個數據庫的一個版本移動到下一個版本,並具有主要的調試問題。我已經在IT工作了15年,沒有任何事情,我從未做過的事情就像剛開始時那樣簡單。事實上,如果我第一次在代碼上進行編譯並且沒有錯誤,那麼我知道這是非常錯誤的。 – 2010-06-09 20:46:26

+0

作爲一個例子,在Oracle的9i版本中,GROUP BY是使用排序算法完成的。因此,即使沒有order by子句,分組依次查詢也會被排序。在10g中,GROUP BY用散列算法完成。其中返回的數據沒有排序。每個程序員跳過添加一個訂單通過他們的數據亂序。但這很明顯,很容易找到。不幸的是,查詢輸出被用於針對排序數據進行優化的獨立進程。當速度放慢時,每個人都會責備數據庫升級。花了一些時間才發現這是潦草的SQL而不是數據庫。 – 2010-06-09 20:51:33

+0

我查看了mySQL和SQL Server Express,發現對於我在做的那種CRUD SQL查詢,mySQL只需要很少的重構。我重寫的主要區域是CONCAT。 – Saul 2010-06-22 14:53:03

回答

3

你可以使用MySQL或Microsoft SQL Server Express。兩者都是免費的,兩者都很好。

不幸的是,無論你走到哪裏,你都會頭痛的轉換你的數據庫。 Microsoft Access不使用標準SQL,因此字符串連接,函數等將有所不同。

+0

我在Ubuntu上嘗試過使用MySQL,但對於一個非Linux經驗豐富的人來說,這太過分了,我必須放棄我的修補,才能在時間範圍內完成工作。文件/目錄權限和區分大小寫對於曾經用於windows和CF的用戶來說是一個真正的障礙。 我想我會在SQL服務器快車去希望SQL語句差異最小。 – Saul 2010-06-10 22:47:25

0

如果您僅僅將Access用作數據庫,那麼當然,Microsoft SQL Server在概念(和SQL方言)中最接近於訪問。但是,如果你的重點是網絡開發,LAMP棧和特別是MySQL是更好的選擇。你至少應該有一些基本管理的想法。

我的經驗是主要的挑戰是數據類型和字符串操作(聽起來像你有類似的問題)。

通常,努力編寫可移植的SQL,因此,閱讀使其不便攜或避免使用特殊技巧的東西是很好的。如果你不能這樣做,那麼使用代碼抽象出來,或者甚至使用ORM工具。

Access,恕我直言,其主要優勢是它內置的支持生成用戶界面和報告,同時隱藏大部分底層SQL。大多數Microsoft語言(特別是VB)提供類似的功能。如果您使用過UI或表單,那麼您現在必須學習用於生成UI /表單/頁面的語言或工具,以及如何使用SQL。既然你提到ColdFusion,我會假設你已經掌握了大部分技能。

8

我建議SQL Server 2008 Express。它有一個很棒的功能集,圖形用戶界面管理工具,隨着您的不斷髮展,您可以輕鬆地從它升級到更多的商業解決方案。

0

在做任何事之前,我會選擇一個數據庫抽象層並重構現有的代碼來使用它。

然後它幾乎完全普遍地換出你的後端是相對微不足道的。

如果您使用準備好的語句,您還將獲得針對許多形式的SQL注入的保護。

我還要指出,由於Web服務器和Jet/ACE數據庫引擎的線程模型和內存管理之間的不匹配,Jet/ACE後端從來就不是基於Web的應用程序的理想選擇(但是如果你使用ADO,Jet會被報告爲線程安全的;我不太瞭解如何將非線程安全的數據庫引擎奇蹟般地轉換爲具有數據接口層的線程安全引擎,但Michael Kaplan說這是如此,而他是你可以信任的那種類型的主題)。

+0

你能再給我一些關於你的意思的指針嗎?你指的是ORM嗎?如果你的意思更一般,我有我的所有我的sql在cfcs這是一定程度的抽象,但當然Ilm仍然將不得不調試我的SQL語句。 – Saul 2010-06-10 22:32:16

+0

你可以看看這種類型的數據庫抽象的ColdFusion ORM:http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSD628ADC4-A5F7-4079-99E0-FD725BE9B4BD.html – 2010-06-11 13:43:03

+0

我不知道從CF,因爲我想在1998 - 99年期間使用它,但找不到任何價格合理的虛擬主機。無論如何,我的意思是類似於PHP的PearDB或ADODB(如果還不清楚,我選擇了PHP)。我期望有這樣的db抽象庫可以和CF一起工作,我只是不知道它們是什麼。 – 2010-06-11 23:49:32

0

我對Microsoft SQL Server Express沒有任何經驗,所以我不能說出來。但是,我確實在ColdFusion 8中使用了MySQL,並且我一直對MySQL的功能,靈活性,易用性,社區支持和速度印象深刻。 PHP MyAdmin非常簡單直觀,是一個很好的MySQL網絡界面。我的.02,花費你的方式。