我有一个我坚持使用的预定义数据库结构。问题是这个结构对于ORM是否正常,或者我是否应该添加一个处理层,每次将某些内容插入原始数据库时都会创建一个更方便的结构。
为简化起见,这就是它的样子。
我有个人表:
PersonId
Name
我有一个属性表:
PersonId
PropertyType
PropertyValue
所以,对于John Doe来说......
(1, 'John Doe')
......我可以有三个属性:
(1, 'phone', '555-55-55'),
(1, 'email', 'user@company.com),
(1, 'type', 'employee')
通过使用ORM,我希望得到一个“人”对象,其中包含“name”,“phone”,“email”,“type”属性。
Propel能做到吗?效率如何?创建一个包含“phone”,“email”,“type”列的表并在新行插入属性表时自动填充它是否更好?
答案 0 :(得分:0)
我认为你应该看看ExtraProperties behavior。它基本上允许您为对象定义一组属性并轻松获取/设置它们。您的示例描述了额外属性的确切用例:具有某些属性(电话,电子邮件,类型)的主对象(Person)。
答案 1 :(得分:0)
为了性能,我最终为所有属性创建了一个包含列的表,如下所示:
PersonId
Name
Phone
Email
Type
使用这样的数据:
1
'John Doe'
'555-55-55'
'user@company.com'
'employee'