Doctrine 2: лучший способ хранить различную информацию - PullRequest
0 голосов
/ 13 апреля 2020

Я хотел бы знать, как лучше хранить различную информацию в зависимости от некоторых переменных.

Например, у меня есть ServerEntity, я хочу хранить диски, подключенные к этому серверу. с ServerDiskEntity.

  • Если этот диск SSD, я хочу сохранить тип NAND (ML C, SL C, TL C).
  • Если этот диск HDD, я хочу сохранить RPM.

Затем, когда я запрашиваю ServerEntity->getDisks(), я проверяю, является ли тип SSD, отображает тип NAND, если тип HDD отображает RPM ,

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

Мое ближайшее предположение: ServerDiskEntity сохраняет DiskType и DiskId, и я использую эту информацию для getRepository(diskType)->findOneBy(["id" => $DiskId]), но она также выглядит очень неоптимизированной из моего POV.

Пожалуйста, кто-нибудь научит меня некоторым волхвам c, чтобы иметь чистый способ сделать это (и я бы хотел избегайте использования ElasticSearch: D)

1 Ответ

0 голосов
/ 14 апреля 2020

Наследование одной таблицы (или наследование объединенной таблицы) является ответом:

https://digitalfortress.tech/php/configure-doctrine-multiple-target-entities/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...