1) При хранении сообщений оно может принадлежать папкам (спам, корзина,
Входящие, Исходящие и т. д.). Это отдельные таблицы или 1 таблица с
столбец для "папки", которая является FK для "таблицы поиска папок"?
В одной папке может быть много сообщений. Если сообщение может находиться только в одной папке, то отношение будет одно (папка) ко многим (сообщения), поэтому да ко второму варианту.
Первый выбор приводит к ненормализованной базе данных.
2) Как и в Hotmail, пользователь может создать x количество пользовательских папок, чтобы
как представить это в модели данных? Я могу сказать, входящие = id 1,
outbox = id 2 и т. д., но для пользовательских папок, таких как "электронная почта для отдыха",
я не уверен, как показать это в модели данных, если
сообщение находится в этой папке.
Стандартные папки могут быть такими, как вы сказали ..., отправлено = id 3, спам = id 4, trash = id 5.
После этого любая пользовательская папка будет иметь: отпускная почта = идентификатор 6 и т. Д.
Нет необходимости вносить какие-либо изменения в модель данных.
3) Одно письмо отправляется нескольким людям. Означает ли это, что мне нужно иметь 1
строка на пользователя отправлена?
Одно письмо, много получателей. Так что, да, если у вас есть таблица для отношений получателей электронной почты.
4) Наконец, сообщения имеют вложения. я предполагаю, что это означает отдельный
таблица вложений, на которые ссылаются FK, для которых когда-либо используются таблицы
хранение сообщений?
Да, как и ответ 3. (одно электронное письмо, много вложений).
Если, однако, вложение может быть во многих электронных письмах (например, если вы пересылаете электронное письмо и вложение), и вы хотите, чтобы в вашей модели это соотношение было много-ко-многим.