好的,首先,我知道这是不可能的1.2,这就是为什么我正在寻找一个解决方法。
不,不幸的是我不能使用Doctrine 2,因为我的共享托管服务器停留在PHP 5.2.16,并且管理员拒绝安装PHP 5.3支持。学说1.2类表继承解决方法?
所以,这里是我的问题,基本的亲子问题:
可以说我有一个基类User
和子类Customer
,Seller
,Admin
。
我一直在寻找的继承方法:简单(好看不中用IMO),具体和列聚集,甚至为“假类表继承”解决方法发现here。
我真正需要的是“类表继承”,换句话说User
映射到单独的表,其中包含所有共同的价值观,和子表定义地图只分离界定其具体列的表。
我在PHP 5.3 <放弃了完美 :),我真的不关心如何将它存储在数据库中,但我的对象模型需要有所有功能。
那么什么是解决方法的最佳选择?
这就是我需要的。
- 基础类定义与共享的值(名称,用户名,密码,地址......)
- 子类的所有值(共享及其特定)
- 子类应该只看到他们变量,而不是其他子类(例如,客户不应该定义
workingHours
,这是卖方的具体值) - 我必须能够在基类和单独的子类上形成关系,并且这些关系必须绑定到特定的类(例如Use r类必须与Address类有关系,Restourant类必须与Orders类有关系,Restourant也必须定义Address关系......但Admin不能有Orders关系,因为他没有任何关系处理订单)
查询基表也不错,但我可以看到这是最大的问题之一,它不是必须的。
我希望你能理解我的问题。任何意见将不胜感激,因为我真的不知道该怎么做。
谢谢。列聚合(又名单表继承)似乎是唯一的出路。我并不喜欢在实现细节上妥协的逻辑,但我真的认为这里没有别的选择 – ZolaKt 2011-03-23 22:43:40