Допустим, у меня есть класс с именем Medium
, который может представлять различные типы носителей. Например:
- загруженного видео
- встроенное видео
- загруженное изображение
- встроенное изображение
Я представляю эти типы с константами, например:
class MediumAbstract
{
const UPLOAD = 0x0001;
const EMBED = 0x0010;
const VIDEO = 0x0100;
const IMAGE = 0x1000;
const VIDEO_UPLOAD = 0x0101; // for convenience
const VIDEO_EMBED = 0x0110; // for convenience
const IMAGE_UPLOAD = 0x1001; // for convenience
const IMAGE_EMBED = 0x1010; // for convenience
const ALL = 0x1111; // for convenience
}
Таким образом, мне легко выполнить комбинированный поиск по ним в (абстрактном) хранилище с чем-то вроде:
{
public function findAllByType( $type )
{
...
}
}
$media = $repo->findAllByType( MediumAbstract::VIDEO | MediumAbstract::IMAGE_UPLOAD );
// or
$media = $repo->findAllByType( MediumAbstract::ALL );
// etc..
Как вы относитесь к использованию этих постоянных значений в конкретном хранилище, таком как база данных? Это нормально? Или я должен заменить их значимыми данными в базе данных.
Table medium:
| id | type | location | etc..
-------------------------------------------------
| 1 | use constants here? | /some/path | etc..
(Конечно, я буду использовать только значимые константы: VIDEO_UPLOAD, VIDEO_EMBED, IMAGE_UPLOAD и IMAGE_EMBED)