Поле данных, которое может иметь разные виды мультимедиа

#mysql #sql #database #database-design

#mysql #sql #База данных #база данных-дизайн

Вопрос:

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

Я хочу знать, является ли это хорошей стратегией проектирования или существуют более эффективные существующие альтернативы?

Большое спасибо,

Париджат

Комментарии:

1. Я стараюсь признать всех, к сожалению, переполнение стека позволяет мне признать только один ответ 🙂

Ответ №1:

Это прекрасная стратегия. В дополнение к типу файла я бы рекомендовал добавить столбец, в котором хранится длина файла в байтах, чтобы вы не извлекали его из файловой системы, когда вам нужно указать его Content-length , например, в заголовке.

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