2016-03-04 10:35:56 2819次浏览 2条回答 0 悬赏 10 金钱

如题,我举个例子如

在一个cms系统中,有一系列内容如基本的文章,博客,新闻以及什么产品等等,它们有大多共同的字段以及部分差异字段
现在我的要求是所有这些不同类型的内容存储到同一张表,但使用的时候是不同的模型,他们的的增删改查是隔离的

abstract class BaseArticle extends \yii\db\ActiveRecord {}
class Article extends BaseArticle {}
class News extends BaseArticle {}
class Post extends BaseArticle {}
class Product extends BaseArticle {}

在yii中模型有种功能叫做场景可以实现不同业务下字段校验不同的功能,我没用过但是不知道是否有其他方法实现在不同模型上增删改查能够隔离。。。
我想过在子类上重载find方法可以隔离同理是否可以重载update和delete方法
重载是否可以使用behavior实现
一人计短二人计长,还未各路大神多多指点

  • 回答于 2016-03-04 13:23 举报

    本人工作之余基于yii1.1自己开发了一套博客系统,包括微信公众平台、手机客户端接口。
    贾民保个人博客:http://baofennyblog.sinaapp.com/ (个人博客系统)
    这是博客地址,大家可以访问浏览下,有什么意见或者建议帮忙提出来,我会第一时间给出回答;谢谢。。

    1 条回复
    回复于 2016-03-04 14:39 回复

    请不要再刷屏了,博客看了,很不错!

  • 回答于 2016-03-05 01:09 举报

    还是没看明白您的描述

    3 条回复
    回复于 2016-03-06 20:41 回复

    比如数据库有一张article的表,那么我也有创建一个Article的模型,后来业务要就增加Page这种类型的文章,那么page这种文章也可以存储在article这张表中只是article使用一个字段如type来区分是文章(article)还是单页(page)以后也可以再增加新闻类的文章(news)等等,现在我的要求是要创建Page、News这种模型tableName指向是article重某种特定类型的记录而已。

    回复于 2016-03-07 13:24 回复

    本质上所有的类型的文章都是存在article这张表中,但是各个业务有自己独立的字段,所以单独表记录,用id进行关联,你的数据表设计是不是这样呢?

    回复于 2016-03-07 13:32 回复

    例如page就标题、内容两个字段,而文章多个摘要字段,那么article这张表包含所有字段的,和一个type字段,type是page的时候摘要字段为空不使用而已,yii有用场景这个功能来验证不同的字段

您需要登录后才可以回答。登录 | 立即注册
shl_0325
总监

shl_0325 嘉兴

注册时间:2012-09-03
最后登录:2018-04-13
在线时长:21小时42分
  • 粉丝4
  • 金钱3005
  • 威望0
  • 积分3215

热门问题