在MySQL和Doctrine中存储具有重叠属性的实体

时间:2015-01-02 13:04:09

标签: mysql symfony doctrine-orm

我试图将一组事件存储在另一个实体中。为此,我有以下实体:

// Something that contains a load of events.
Something:
  id
  events

// An actual event.
Event:
  id
  timestamp
  eventname

可能会创建不同的事件,其中不同的类型具有不同的属性。例如,key_down事件具有binding属性,而damage事件具有amount。以前我通过为每种事件类型设置一个表来解决MySQL中的问题:

key_down:
  code
  binding

damage:
  target
  amount

eventname指向适当的表格:

id | timestamp | eventname
--------------------------
 1 | 2.5s      | key_down
 2 | 3.0s      | key_up
 3 | 7.4s      | key_down
 4 | 8.9s      | damage

我的问题是,在MySQL中存储这些内容的正确方法是什么,以及如何在Doctrine中表示这一点?在面向对象的设计中,我将事件存储为Event的子类。

0 个答案:

没有答案