2010-06-09 3 views
2

내 모든 (집) CF 학습은 지금까지 데이터베이스로 Access를 사용하여 이루어졌으며, DB에 이르면 나는 "얻습니다". 데이터베이스 서버가 없으므로 데이터베이스 나 다른 어떤 것에도 로그온 할 필요가 없으며 테이블 관계를 설정하는 것이 쉽고 시각적입니다. 아, 기본적으로 무료로 배포 할 수 있습니다.ColdFusion 용 MS Access의 좋은 데이터베이스는 무엇입니까?

그러나 지금은 여러 비즈니스와 아마 최대 50 명의 동시 사용자에게 사용되는 응용 프로그램에 대해 작업하고 있습니다. 나는 Access가 정말로 다중 사용자 사용이나 앱에서의 프로덕션 사용에 달려 있지 않다는 이야기를 들었다. 내 SQL에 필요한 최소한의 tweeking (당신이 MySQL로 변환하는 도구를 사용하고 확실히 연결을 다르게 처리하고 너무 많은 디버깅을하고 싶지는 않음), 시각 인터페이스 확장 성, 백업 가능 및 필요한 모든 것이 내가 필요한 것을 아직 알지 못합니다!

+0

데이터베이스를 복제하고 디버깅을 원하지 않으십니까? 이것은 당신을위한 최적의 진로가 아닐 수도 있습니다. 나는 진심으로 그 뜻. 우리는 동일한 데이터베이스의 한 버전에서 다음 버전으로 응용 프로그램을 이동하고 주요 디버깅 문제를 겪었습니다. 나는 15 년 동안 IT에 종사 했었습니다. 그리고 아무 것도하지 않았습니다. 내가 시작했을 때 아무 소리도 들리지 않는 간단한 작업이었습니다. 사실, 처음 컴파일 할 때 오류가 발생하지 않는다면 뭔가 잘못된 것이 있다는 것을 압니다. –

+0

예를 들어, Oracle 9i 버전에서 GROUP BY는 정렬 알고리즘으로 수행되었습니다. 결과적으로 group by의 쿼리는 order by 절없이 정렬되었습니다. 10g에서 GROUP BY는 해시 알고리즘으로 수행되었습니다. 어떤 정렬되지 않은 데이터를 반환했습니다. 주문을 추가하지 않고 건너 뛴 모든 프로그래머는 데이터의 순서가 잘못되었습니다. 그러나 그것은 분명하고 쉽게 찾을 수 있습니다. 아쉽게도 쿼리 출력은 정렬 된 데이터에 최적화 된 별도의 프로세스에서 사용되었습니다. 그 속도가 느려지자 모두가 DB 업그레이드를 비난했습니다. 그것은 그것이 DB가 아닌 조잡한 SQL이라는 것을 발견하는 데 약간의 시간이 걸렸다. –

+0

필자는 mySQL과 SQL Server Express를 살펴본 결과 CRUD SQL 쿼리에 대해 mySQL이 리팩토링을 거의 필요로하지 않는다는 것을 알았습니다. 저의 주요 영역은 CONCAT이었습니다. – Saul

답변

3

당신은 MySQL 또는 Microsoft SQL Server Express와 함께 갈 수 있습니다. 둘 다 무료이며 둘 다 잘 작동합니다.

불행히도 당신은 당신이 가면 상관없이 데이터베이스를 변환하는 두통이있을 것입니다. Microsoft SQL Server에서는 표준 SQL을 사용하지 않으므로 문자열 연결, 함수 등이 달라집니다.

+0

우분투에서 MySQL을 간단히 사용해 보았습니다.하지만 비 리눅스 경험이있는 사람에게는 너무 먼 단계였습니다. 그리고 나는 시간 척도로 일을 끝내기 위해 땜질해야했습니다. 파일/디렉토리 사용 권한 및 대소 문자 구분은 Windows 및 CF에 익숙한 사람들에게 실질적인 장애물이었습니다. 나는 SQL 서버의 차이점이 없기를 희망하면서 SQL 서버 익스프레스에 가야한다고 생각한다. – Saul

0

Access를 데이터베이스로 사용하는 경우 Microsoft SQL Server는 자연스럽게 개념 (및 SQL 언어)에서 액세스 할 수 있습니다.

그러나 웹 개발에 중점을두면 LAMP 스택과 특히 MySQL을 사용하는 것이 더 좋습니다. 적어도 기본 관리에 대한 아이디어가 있어야합니다.

제 경험상 주요 문제는 데이터 유형 및 문자열 연산 (비슷한 문제가있는 것처럼 들릴 수 있음)과 관련이 있다는 것입니다.

일반적으로 이식 가능한 SQL을 작성하기 위해 노력하므로 이식 가능하지 않게하거나 특수 기능 사용을 피하는 것이 좋습니다. 그렇게 할 수 없다면 코드를 사용하여 추상화하거나 심지어 ORM 도구를 사용하십시오.

Access의 주요 이점은 기본 SQL의 대부분을 숨기면서 UI 및 보고서 생성을 지원하는 것입니다. 대부분의 Microsoft 언어 (특히 VB)는 비슷한 기능을 제공합니다. UI 또는 양식을 사용한 적이 있다면 UI/양식/페이지 생성을위한 언어 또는 도구와 SQL 사용 방법을 모두 배워야합니다. ColdFusion에 대해 언급 한 이래로 이미 이러한 기술을 대부분 사용하고 있다고 가정합니다.

8

SQL Server 2008 Express을 권장합니다. 훌륭한 기능 세트, 그래픽 UI 관리 도구가 있으며, 계속 성장함에 따라보다 상용 솔루션까지 쉽게 업그레이드 할 수 있습니다.

0

전혀 작업을 수행하기 전에 데이터베이스 추상화 계층을 선택하고이를 사용하기 위해 기존 코드를 리팩터링합니다.

그런 다음 거의 완전히 에큐메니컬하게 백엔드를 교체하는 것은 비교적 간단합니다.

준비된 문을 사용하면 다양한 형태의 SQL 삽입에 대한 보호 기능을 사용할 수 있습니다.

또한 웹 서버 및 Jet/ACE 데이터베이스 엔진의 스레딩 모델과 메모리 관리가 일치하지 않기 때문에 Jet/ACE 백 엔드가 웹 기반 응용 프로그램에 적합하지 않은 것으로 나타났습니다 (ADO를 사용하는 경우 Jet는 스레드 안전성이 있다고보고되지만, 어떻게 스레드가 아닌 db 엔진을 마술처럼 데이터 인터페이스 계층이있는 스레드 세이프 엔진으로 변형 할 수 있는지는 잘 모르겠지만 Michael Kaplan은 그렇게 말했습니다. 그 종류의 과목에서 당신이 신뢰할 수있는 사람의 유형입니다).

+0

당신이 의미하는 바에 대한 더 많은 조언을 해 줄 수 있습니까? ORM을 언급하고 있습니까? 좀 더 일반적으로 말하면, 나는 추상화의 일정 금액 인 cfcs에 모든 SQL을 가지고 있지만 물론 SQL 문을 디버그해야 할 것입니다. – Saul

+0

ColdFusion ORM에서 이러한 유형의 데이터베이스 추상화를 볼 수 있습니다. http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSD628ADC4-A5F7-4079-99E0-FD725BE9B4BD.html –

+0

잘 모르겠습니다. CF, 1998-99 년에 다시 사용하고 싶었지만 제공 한 합리적인 가격의 웹 호스팅을 찾을 수 없었습니다. 어쨌든, 내가 의미하는 것은 PearDB와 PHP 또는 ADODB (분명하지 않다면 PHP를 선택했습니다)와 같은 것입니다. CF와 함께 작동하는 db 추상화 라이브러리가있을 것으로 기대합니다. 단지 그들이 무엇인지 모를 것입니다. –

0

Microsoft SQL Server Express에 대한 경험이 없으므로 말씀 드릴 수 없습니다. 그러나 ColdFusion 8과 함께 MySQL을 사용하고 있으며 MySQL의 기능, 유연성, 용이성, 커뮤니티 지원 및 속도에 지속적으로 깊은 인상을 받았습니다. PHP MyAdmin은 MySQL을위한 꽤 좋은 웹 인터페이스입니다. 내 $ .02, 당신이 할 수있는 방법을 보냅니다.

관련 문제