2009-06-23 2 views
9

데이터가 데이터베이스 내부의 WDDX 패킷에 저장되는 ColdFusion 사이트에서 작업하고 있는데 정말 고통 스럽습니다. (왜 값이 다른 테이블에 저장되지 않는지 알지 못합니다.)ColdFusion : 누구든지 WDDX를 사용합니까?

WDDX를 사용하지 않았으며 이에 대한 문서는 아주 오래된 것 같습니다. 그래서 누군가 WDDX를 여전히 사용한다면 궁금합니다. 그렇다면 무엇을 위해서입니까?

답변

7

에 대해 쓸 수 있습니다 만 너무 많은 거기로 문서가 많이 변경되지 않은 추측 데이터 베이스. 나는 ini 파일과 GetProfileString()을 사용할 수 있지만 WDDX는 훨씬 더 편리합니다.

이론적으로 AJAX를 사용하여 원래의 의미로 사용할 수 있습니다. 특히 CF8까지 JSON에 대한 기본 지원이 없었기 때문에 특히 그렇습니다.

XSL 변환을위한 입력으로 사용할 수도 있으므로 구조체 나 쿼리와 같은 CF 데이터 유형을 나타 내기 위해 고유 한 XML을 작성할 필요가 없습니다.

마지막으로 데이터베이스에서 다양한 구조화 된 데이터를 저장할 수있는 확장 가능한 방법으로 사용할 수 있습니다 (예 : 다른 경우를 다루는 로그 메시지). 나는 이것이 왜 당신의 경우에 고통인지 모르겠지만 아마도 WDDX 문제 (?)보다 건축상의 문제 일 것입니다.

다음과 같은 결론이 있습니다. 모든 CF를 직렬화 및 비 직렬화 (즉, 저장 또는 지속)하는 방법은 빠르고 간단하면서도 휴대 가능하고 안전합니다 (Evaluate() 또는 사용자 정의 배관이 필요함) 데이터 형식.

+0

고마워요. 필자의 경우 WDDX는 CMS에 사용자 권한을 저장합니다. 나에게있어서 문제는 단순히 DB에 사용자 권한을 쿼리 할 수 ​​없다는 것입니다. 그러나 당신이 말했듯이, 그것은 WDDX 자체의 문제가 아니라 건축상의 문제입니다. – nedlud

+0

흠, SQL Server 2005 이상을 사용하는 경우 NVARCHAR (또는 그 대신) 대신 사용할 수있는 XML 데이터 형식이 있습니다. 다른 "기능 중심"DBMS도 이와 유사한 기능을 제공 할 수 있습니다. – Tomalak

4

CMS에서 페이지 청크 구성 데이터에 대해 수행합니다. 결정은 CF5로 거슬러 올라갑니다. 이제는 더 간단한 XML 형식을 사용할 수 있습니다 (저장된 데이터는 스칼라 값의 일련 화 된 해시 임). 그러나 매번 필요한 데이터에 대한 추가 다중 행 쿼리의 오버 헤드를 피할 수있는 편리한 방법입니다 상위 레코드가 액세스됩니다.

나는 그 어떤을 필요로 당신은 내가 작은 응용 프로그램에 구성 값을 저장하는 WDDX를 사용하는 간단한 데이터 직렬화 작업 :

<cfwddx action="cfml2wddx" input=#raw_data# output="encoded_data"/> 
<cfwddx action="wddx2cfml" input=#encoded_data# output="decoded_data"/> 
1

여러 가지 이유로 사용했습니다. 두 가지 다른 ColdFusion 서버간에 웹 서비스와 유사한 기능을 허용하는 것이 그 중 하나입니다. XML의 단순한 텍스트이기 때문에 일반 텍스트이기 때문에 CFHTTP를 사용하는 간단한 HTTP 호출보다 더 복잡한 작업이 필요하지 않습니다. WDDX이기 때문에 매우 쉽게 CF 구조로 변환되었습니다.

CF5 일전에 이것은 정말로 중요했습니다. CF가 XML 파싱을위한 강력한 도구를 제공하는 지금도 네이티브 데이터 구조는 여전히 사용하기가 더 쉽습니다.

0

마지막으로 사용한 것은 양식 범위를 직렬화하는 것이 었습니다. 왜 내가 필요한지 많이 기억할 수는 없지만 양식에 많은 변형이 있었고 WDDX를 비순환화 할 수있는 필드를 다시 채우고 모든 것이 세계와 잘 어울렸다.

잠시 후 사용하지 않았습니다.

0

기본적으로 어떤 제품이 어떤 상자에 들어 있는지, 제품 배송에 대한 정보를 저장하는 데 사용됩니다. 이 응용 프로그램을 디자인 할 당시 DB의 별도 행에 해당 정보를 저장할 필요가 없었기 때문에 해당 정보가 들어있는 구조체가 WDDX로 직렬화되고 DB에 채워졌습니다.

2

CF8이 출시 된 이후로 WDDX 대신 JSON을 사용했습니다.

둘 다 DB를 변경하지 않고 쿼리 할 필요가없는 일부 데이터 필드를 직렬화하는 데 적합합니다. JSON을 WDDX 이상으로 사용할 수 있습니다. :)

+0

나는 이것에 Henry와있다! –

0

나는 세션 변수 범위가 비활성화 된 전자 상거래 웹 사이트를 만든 어색한 회사에서 일했기 때문에 쿠키에 구조를 저장해야했습니다. 이것은 실제적인 사용자 보안상의 이유로는 아니 었습니다. 세션 변수가 활성화 된 서버에서 실행될 경우 알 수없는 몇 가지 이유에 대한 백엔드 관리 응용 프로그램 자체가 무너집니다. 따라서 문제를 일으키는 원인을 수정하거나 별도의 서버에서 관리 시스템을 실행하는 대신 문제를 해결할 수있는 '가장 빠르고, 가장 쉽고, 가장 쉬운 방법'이었기 때문에 세션이 사용 중지되었습니다.

나는 더 이상 그 곳에서 일하지 않기 때문에 기쁩니다.

1

쿼리 결과 및 구조체에 묶음을 저장하는 데 사용합니다. 한 번의 작업으로 여러 테이블을 캡처 할 수 있기 때문에 유용합니다. JSON은 WDDX가 해결할 수있는보다 현대적인 접근 방식입니다. 선택의 여지가 있다면 상호 운용성이 뛰어나다는 이유로 JSON을 선택하겠다.