Мой вопрос заключается в том, как избежать явного первичного ключа.
Сущность
ContactHistory очень быстро будет наполняться и есть вероятность что индекс иссякнет (я утрирую)
Я просто хочу сэкономить, зачем использовать явный первичный ключ если он не когда не будет использоваться
Да, можно использовать составной первичный ключ, но я не вижу полей которые гарантировали бы уникальность.
/**
* @ORM\Entity(repositoryClass=ContactRepository::class)
* @ORM\Table(name="contacts")
*/
class Contact
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="bigint")
*/
private ?int $id;
...
/**
* @var ArrayCollection|PersistentCollection
* @ORM\OneToMany(targetEntity="ContactHistory", mappedBy="contact", cascade={"remove"}, fetch="EXTRA_LAZY")
*/
private $history;
...
}
/**
* @ORM\Entity(repositoryClass=ContactHistoryRepository::class)
* @ORM\Table(name="contacts_history")
*/
class ContactHistory
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="bigint")
*/
private int $id;
/**
* @var Contact|null
* @ORM\ManyToOne(targetEntity="Contact", inversedBy="history", cascade={"persist"})
*/
private ?Contact $contact;
...
}