MS-Access MDB : 메모 필드를 여러 텍스트 필드로 분할하십시오. (데이터 손상 방지)

StackOverflow https://stackoverflow.com/questions/826668

문제

백엔드로 사용되는 액세스 데이터베이스를 사용합니다.
나는 메모 필드를 사용합니다.

메모 필드는 별도의 데이터 페이지에 저장되어 있기 때문에 데이터베이스 손상을 유발할 수 있다는 것을 알게되었습니다. 레코드는 실제 데이터가 저장되는 데이터 페이지에 대한 포인터 만 보유합니다.

대부분의 경우 100 ~ 1000 숯 정도가 필요하므로 아이디어가있었습니다 ...
나의 "Brilliant"(또는 그렇지 않은) 아이디어는 메모를 4 ~ 5 개의 텍스트 필드로 나누는 것이 었습니다 (각각 255 숯을 잡을 수 있음).

누구든지 전에 이것을 해본 적이 있습니까?
알려진 문제가 있습니까?
이 접근법이 데이터 손상에 덜 취약할까요?

감사,
뾰족한 모서리

추신
1. 전에는 부패 문제가있었습니다.
2. 가장 좋은 것은 다른 백엔드로 마이그레이션하는 것이지만 불가능합니다.

도움이 되었습니까?

해결책

더 나은 해결 방법은 첨부 된 레코드에서 메모 데이터 페이지를 해제하는 것입니다. 그렇게하는 방법은 메모 필드를 별도의 테이블에 넣는 것입니다. 1 : 1 테이블 (사이드 테이블에 여러 메모 포함)으로 또는 메모 유형 필드가있는 1 : N 테이블로 더 잘 할 수 있습니다. 후자의 방법은 메모 포인터 문제를 완전히 피할 수있는 유일한 방법입니다. 그러나 이전 솔루션에서 메모 테이블의 메모 포인터의 손상으로 인해 모든 것을 잃게됩니다.

또한 고려해야합니다 데이터베이스는 메모 포인터를 손상시킵니다. 위의 제안 외에도 메모를 부정하지 않은 것을 고려해야 할 것입니다. 비록 문제가 아닌 Jet MDB의 액세스 프론트 엔드를 사용하는 것 같지 않기 때문에 아마도 메모를 부정하지 않을 것입니다. 나는 메모 부패를 때때로 보았지만 자주 자주는 아닙니다. 자주 보면 응용 프로그램이 잘못 설계되었거나 운영 환경이 현저하게 표준 이하임을 제안합니다.

다른 팁

기존 메모 필드를 가져 와서 데이터베이스에 넣고 표시해야 할 때 다시 붙잡고 싶을 것 같습니다.

나는 당신이 그것을 시도한다면 당신이 고통의 세계를 위해있을 것이라고 생각합니다. 그것이 당신의 유일한 옵션이라면 백엔드를 변경하기 위해 더 열심히 노력할 것입니다 :)

나는 당신이 제안한 것과 같은 일을 제안함으로써 DWF의 대답을 기반으로 할 것입니다. 텍스트 필드 (문제가있는 메모 vs)와 함께 1 : n 테이블 (사용자 오노를라고 부르겠습니다)을 만드십시오.

그런 다음 레코드 소스로서 사용자 정체로 하위 형태를 만들고 메모 필드를 사용자 정서 하위 형태로 바꾸십시오. 이를 통해 사용자는 255 문자 텍스트 필드의 컨텍스트 내에서 줄/단락 브레이크가 어디에 있는지 결정할 수 있습니다. (전환을 위해서는 여전히 메모를 잘라야하지만 한 번의 작업 일뿐입니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top