Эффективно спроектируйте простой почтовый клиент - PullRequest
1 голос
/ 25 марта 2009

<strong>Requirement :</strong> JAVA desktop mail client which could connect to existing gmail,y! mail a/c & will allow receive/send mails, support offline view of mails, plus with more features as & when it comes. i am using Java Mail Api's

<strong>Underlying Mail Storage:</strong> I have decided to use <b>HSQLDB</b> with <b>Hibernate</b>. Email content can have attachments , HTML , so i decided to use LONGVARBINARY type to store the email Body & attachments.

Please let me know whether this approach is good & will it give me good performance when it comes to retrieval. Also give me some pointers on how to store java email objects in HSQLDB into LONGVARBINARY type & how to dereference it to get the actual data. <b>??</b><br><br> </blockquote> <p><strike>2)I am confused over this because , with Approach 1 , i will end up storing all mail contents somehow on my local disk to enable offline viewing. And imagine if i have 1GB of mails ></strike>

1 Ответ

1 голос
/ 25 марта 2009

Если вы используете файловый подход (и это не исключает вас из использования базы данных), вы можете сжимать и распаковывать файлы, которые вы используете для сохранения, когда они не используются. Поскольку вы будете хранить простой текст, сжатие, вероятно, будет значительным, и снижение скорости не будет таким уж плохим, если вы сделаете это в разумно выбранное время. Черт, ты можешь даже сделать это опцией.

Самая важная вещь (для меня), чтобы рассмотреть здесь, это время поиска. Что вы хотите, чтобы пользователи могли искать? Если поиск важен, я бы, вероятно, использовал базу данных. Мой первоначальный подход к этой проблеме состоял бы в том, чтобы хранить информацию о субъекте и заголовке (даты, отправитель, получатель и т. Д.) В отдельных столбцах, а затем сериализовать весь объект электронной почты в столбец двоичных данных (возможно, сжатый). Это приведет к тому, что полнотекстовый поиск займет больше времени, но в любом случае этого следует ожидать, верно?

...