原则2:存储不同信息的最佳方式



我想知道根据一些变量存储不同信息的最佳做法是什么。

例如,我有一个ServerEntity,我想用ServerDiskEntity存储插入该服务器的磁盘。

  • 如果这个磁盘是SSD,我想存储NAND类型(MLC、SLC、TLC(
  • 如果这个磁盘是HDD,我想存储RPM

然后,当我请求ServerEntity->getDisks()时,我检查类型是否为SSD,显示NAND类型,如果HDD类型显示RPM。

把所有东西都存储在同一个实体中对我来说很糟糕。拥有两个单独的实体(没有其他东西把它们粘在一起(不是一种选择,因为我存储了一些其他信息,比如托盘号。

我最接近的猜测是:ServerDiskEntity存储DiskTypeDiskId,我将这些信息用于getRepository(diskType)->findOneBy(["id" => $DiskId]),但从我的POV来看,这似乎也没有得到优化。

请有人教我一些魔术,让我有一个干净的方法来做到这一点(我想避免使用ElasticSearch:d(

单表继承(或联接表继承(就是答案:

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

最新更新