2011-02-16 3 views
0

소개받는 사람도 링크를 통해 전자 메일을 읽을 수 있도록 보내는 전자 메일을 어떻게 저장해야합니까?

좋아, 그래서 매일 많은 이메일을 보내는 웹 응용 프로그램이 있습니다. 이메일에 '이 이메일을 읽을 수 없다면 여기를 클릭하십시오.'링크를 포함시키고 싶습니다.

나는 이것을 가장 잘 보관하는 방법과 다른 사람들이 어떻게하는지 궁금합니다.

CREATE TABLE IF NOT EXISTS `mydb`.`httpsemail` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , 
    `from` VARCHAR(255) NOT NULL , 
    `to` VARCHAR(255) NOT NULL , 
    `subject` VARCHAR(255) NOT NULL , 
    `body` MEDIUMTEXT NULL , 
    `hash` CHAR(60) NOT NULL , 
    PRIMARY KEY (`id`)) 
ENGINE = InnoDB 

이메일 내용이받는 사람에 따라 삽입 다른 고객 관련 데이터와 다양한 템플릿에서 생성됩니다

문제

오늘은이 같은 데이터베이스 테이블을 가지고있다.

테이블이 수 기가 바이트 (보낸 전자 메일 당 한 행)로 빠르게 증가하며 크기는 수 기가 바이트입니다.

나는 이것이 문제가되는지조차 확신하지 못합니다. 나는 항상 기본 키로 이메일을 검색하므로 빠릅니다. 하드 드라이브가 큽니다. 그러나 백업 속도가 느립니다.

가능한 솔루션/개선

가능한 개선은 사용자가 데이터베이스 대신에 상기 생성 된 결과를 저장하는 링크를 클릭 할 때, 전자 메일의 콘텐츠를 재생한다. 그러나 입력 내용은 그동안 변경 될 수 있으며 전자 메일이 "고정"되어야합니다. 즉, 사용자는 전자 메일을 보낼 때와 같이보아야합니다.

또 다른 개선 사항은 X 일보다 오래된 저장된 이메일을 자동으로 삭제하는 것입니다. 그러나 이것은 X에 따라 링크가 언젠가 작동을 멈출 것임을 의미합니다. X가 낮 으면 여유 공간이 좋지만 사용자에게는 좋지 않습니다. X 결정 방법?

생각하십니까?

답변

0

여전히 뷰당 복사본을 생성 할 수 있지만 전자 메일이 생성 될 때 모든 가변 데이터 복사본을 별도의 테이블에 만들어야합니다. 이렇게하면 사용자 당 사본을 보관해야하지만 그 동안에 원래 부모 테이블에서 일부 데이터가 변경 되었더라도 동일한 이메일을 재생성 할 수 있습니다.

만료 기간은 귀하에게 달려 있습니다. 몇 달은 적당 할 것이나, 또한 전자 우편에있는 자료에 또한 의지 할 것입니다 - 판매 기간보다는 더 긴 동안 판매 전단지를 저장하는 것은 다량 이해되지 않을 것입니다.

관련 문제