Я хочу представлять файлы в базе данных и хранить метаданные в зависимости от того, является ли это аудиофайлом, видеофайлом или файлом изображения.Неполная специализация с наследованием класса класса Doctrine2
Нормализованный способ справиться с этим будет состоять из нескольких таблиц, каждый из которых имеет только столбцы, необходимые для конкретного типа файла. Таблица root/superclass будет содержать информацию, общую для всех файлов (путь, имя, размер, даты и т. Д.).
Проблема: Помимо «categorizable» файлы, перечисленные выше, всегда будет файлы не будут предоставлять дальнейшие метаданные. Следовательно, все, что нужно зайти в базу данных, это запись в таблице root/superclass.
Прочитав Doctrine 2 Documentation on Class Table Inheritance (CTI), я считаю, Doctrine2 не допустит объекты, которые в дальнейшем не специализированные:
отображенный суперкласс не может быть объектом [..]
Есть ли способ выполнить это? Почему это невозможно?
'http: // stackoverflow.com/ questions/7037882/doctrine-table-class-inheritance-when-one-subclass-has-no-extra-attributes/9750756 # 9750756' утверждает, что можно создать другой подкласс без добавляя любые свойства. После этого Doctrine2 создаст таблицу с одним столбцом: 'id'. – snwflk