我有一個表tech_note
,我想有3個表更多tech_note_es
,tech_note_en
和tech_note_fr
(在未來更多的表)。 tech_note
可以同時在3個表中。我可以使用MySQL設置Symfony2 ORM繼承關係嗎?
我的想法附加到tech_note_en
並自動從tech_note
接收屬性。
第二個編輯:
我想財產以後這樣的:我在Tech_note_EN by ID=3
搜索(我recive從tech_note_EN with ID=3
和領域tech_note with ID=3
領域
但是,如果我在Tech_note_ES BY ID=3
搜索(我recive從tech_note_ES with ID=3
領域。和tech_note字段tech_note with ID=3
(與相同的字段)
tech_note的ID = 3 Tech_note ote_EN具有ID = 3,和Tech_note_ES具有ID = 3
WITH新類編輯:
現在我有此錯誤: 實體 '的EVT \ FrontendBundle \實體\ Tech_note_en' 具有複合標識符,但用途除手動分配(身份,序列)之外的ID生成器。這不支持。
TECH_NOTE
abstract class Tech_note {
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var datetime $control_date
*
* @ORM\Column(name="control_date", type="datetime")
*/
private $control_date;
/**
* @var string $comment
*
* @ORM\Column(name="comment", type="string")
*/
private $comment;
TECH_NOTE_EN
class Tech_note_en extends Tech_note {
/**
* @var integer $tech_note_id
*
* @ORM\Id
* @ORM\Column(name="tech_note_id", type="integer")
* @ORM\OneToOne(targetEntity="tech_note")
* @ORM\JoinColumn(name="tech_note_id",referencedColumnName="id")
*/
private $tech_note_id;
/**
* @var text $symptom
*
* @ORM\Column(name="symptom", type="text")
*/
private $symptom;
/**
* @var text $cause
*
* @ORM\Column(name="cause", type="text")
*/
private $cause;
/**
* @var string $solution
*
* @ORM\Column(name="solution", type="string")
*/
private $solution;
老班
TECH_NOTE
class Tech_note {
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var datetime $control_date
*
* @ORM\Column(name="control_date", type="datetime")
*/
private $control_date;
/**
* @var string $comment
*
* @ORM\Column(name="comment", type="string")
*/
private $comment;
TECH_NOTE_EN
class Tech_note_en
{
/**
* @var integer $tech_note_id
*
* @ORM\Id
* @ORM\Column(name="tech_note_id", type="integer")
* @ORM\OneToOne(targetEntity="tech_note")
* @ORM\JoinColumn(name="tech_note_id",referencedColumnName="id")
*/
private $tech_note_id;
/**
* @var text $symptom
*
* @ORM\Column(name="symptom", type="text")
*/
private $symptom;
/**
* @var text $cause
*
* @ORM\Column(name="cause", type="text")
*/
private $cause;
/**
* @var string $solution
*
* @ORM\Column(name="solution", type="string")
*/
private $solution;
您能否指定您在哪裏發現困難或預期的答案? –
每種語言一個表感覺不對 - 您不需要修改數據庫結構來添加新的語言。你可以使用兩個相關的表:'tech_note'和'tech_note_lang'?我不認爲你在這裏也需要繼承。 – halfer