I want store meta data of products and categories in separated table i.e. creates tables:
meta_data (id, title, description, ...)
products (id, ..., meta_data_id)
categories (id, ..., meta_data_id)
I create entities with one-to-one relations:
class MetaData
{
#[ORMId]
#[ORMGeneratedValue]
#[ORMColumn(type: Types::INTEGER, unique: true, options: ['unsigned' => true])]
private int $id;
...
}
class Product
{
#[ORMColumn(type: Types::INTEGER, unique: true, options: ['unsigned' => true])]
#[ORMId]
#[ORMGeneratedValue]
private int $id;
#[ORMOneToOne(targetEntity: MetaData::class, cascade: ['persist'], orphanRemoval: true)]
#[ORMJoinColumn(name: 'meta_data_id', unique: true, onDelete: 'CASCADE')]
private MetaData $metaData;
...
}
class Category
{
#[ORMColumn(type: Types::INTEGER, unique: true, options: ['unsigned' => true])]
#[ORMId]
#[ORMGeneratedValue]
private int $id;
#[ORMOneToOne(targetEntity: MetaData::class, cascade: ['persist'], orphanRemoval: true)]
#[ORMJoinColumn(name: 'meta_data_id', unique: true, onDelete: 'CASCADE')]
private MetaData $metaData;
...
}
In this case, foreign keys adds to products and categories tables, but I want adds foreign keys to meta_data table to delete meta data at product/category deletion. How configure entities in this case?