1

我有一个我坚持使用的某种预定义的数据库结构。问题是这种结构是否适合 ORM,或者我是否应该添加一个处理层,以便在每次将某些内容插入原始数据库时创建一个更方便的结构。

为了简化,这就是它的样子。

我有一个人表:

PersonId
Name

我有一个属性表:

PersonId
PropertyType
PropertyValue

所以,对于约翰·多伊这个人...

(1, 'John Doe')

...我可以拥有三个属性:

(1, 'phone', '555-55-55'),
(1, 'email', 'user@company.com),
(1, 'type', 'employee')

通过使用 ORM,我想获得一个具有“名称”、“电话”、“电子邮件”、“类型”属性的“人”对象。

Propel 能做到吗?它的效率如何?创建一个包含“电话”、“电子邮件”、“类型”列的表并在将新行插入属性表时自动填充它是一个更好的主意吗?

4

2 回答 2

0

我认为你应该看看ExtraProperties 行为。它基本上允许您为对象定义一组属性并轻松获取/设置它们。您的示例描述了额外属性的确切用例:具有一些属性(电话、电子邮件、类型)的主要对象(人)。

于 2012-10-12T09:33:57.447 回答
0

为了性能,我最终创建了一个包含所有属性列的表,如下所示:

PersonId
Name
Phone
Email
Type

像这样的数据:

1
'John Doe'
'555-55-55'
'user@company.com'
'employee'
于 2013-10-06T17:42:41.377 回答