用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3397|回复: 7
收起左侧

关于PHP的ORM持久层问题

[复制链接]
发表于 2012-8-28 09:51:19 | 显示全部楼层 |阅读模式
  各位大侠,关于PHP的Model层  我有个小疑问
  比方说现在有这样一个需求.给定一个user表, 一个user_status表,你可以看作在人人网中的用户表和用户发的状态表.比方说我打开人人网的首页,可以获取我好友的全部状态信息,然而每个状态信息里面肯定要包括发状态者的姓名和头像,
  如果是在java 里 根据javabean的特性我可以通过user_status.user.name等类似的方式,通过关系对象访问获取user的数据,但是在php中,比方说CI框架,数据库的内容大部分是通过数组进行访问的,比如$row['name'],$row['image_url']等,
  现在问题来了,既然PHP是以数组访问数据库内容的,那么怎样才能像java那样灵活地运用关系数据的特性呢,还是说,我在设计数据表的时候要在user_status里添加user_name,user_image_url等冗余字段方便访问?
 楼主| 发表于 2012-8-28 10:03:17 | 显示全部楼层
注:user表和user_status表是通过user_id进行连接的
发表于 2012-8-28 12:45:51 | 显示全部楼层
php哪有什么真正的持久层,人家hibernate里面可以缓存数据到内存呢,php行吗?
发表于 2012-8-28 12:47:10 | 显示全部楼层
user_status.user.name
$user_status['user']['name']
 楼主| 发表于 2012-8-28 12:56:06 | 显示全部楼层
yunnysunny 发表于 2012-8-28 12:47
user_status.user.name
$user_status['user']['name']

$user_status['user'] = $this->user_model->get_user_by_id($user_status['user_id']); 是这个意思玛
 楼主| 发表于 2012-8-28 13:01:53 | 显示全部楼层
yunnysunny 发表于 2012-8-28 12:45
php哪有什么真正的持久层,人家hibernate里面可以缓存数据到内存呢,php行吗? ...

缓存数据。。。要不就memcache?
发表于 2012-8-28 15:29:51 | 显示全部楼层
northestknight 发表于 2012-8-28 12:56
$user_status['user'] = $this->user_model->get_user_by_id($user_status['user_id']); 是这个意思玛 ...

user_status.user.name
你这一串点,我也不知道你要表达什么意思,所以就转化为php中的多维数组结构了。
 楼主| 发表于 2012-8-28 15:35:28 | 显示全部楼层
yunnysunny 发表于 2012-8-28 15:29
user_status.user.name
你这一串点,我也不知道你要表达什么意思,所以就转化为php中的多维数组结构了。 ...

我假设在java里 有一个user_status类,在这个类中,又包含user类,通过这个方法实现关系对象

本版积分规则