SPB-可扩展服务-UserCategory

来自站长百科
跳转至: 导航、​ 搜索

导航: 上一页

一、功能说明

SPB中存在大量使用UserCategory的功能,而且都很相似,因此考虑把UserCategory作为一个可扩展服务,允许在不同的Application中经过简单的扩展即可使用UserCategory。当前UserCategory提供了以下功能:

  1. 用户可以配置内容项只能加入一个类别还是可以加入多个类别;
  2. 只允许建立一级分类;
  3. 把内容项加入一个(或多个)类别,或者从类别中移除;
  4. 类别合并 ;(高级功能,可以暂不实现)
  5. 在类别中自动统计内容项数目;

二、设计说明

Spacebuilder0203.jpg

三、设计原则

  • 内容项只能加入一个类别的情况(一对多关系)
  1. 必须指定使用用户类别的实体关键词,简称为UserCategoryItemKey;
  2. UserCategoryItemKey必须唯一,
  3. 数据库表的命名必须符合以下格式 spb_{UserCategoryItemKey}UserCategories;
  • 内容项可以加入多个类别的情况(多对多关系)
  1. 必须指定使用用户类别的实体关键词,简称为MultiUserCategoryItemKey;
  2. MultiUserCategoryItemKey必须唯一,
  3. 数据库表的命名必须符合以下格式
spb_{ MultiUserCategoryItemKey} UserCategories;

spb_{ MultiUserCategoryItemKey} sInUserCategories

四、如何实现用户分类

  • 内容项只能加入一个类别的情况
  1. 确定要使用一对多关系用户分类服务的实体关键词(UserCategoryItemKey),比如:News 根据关键词(UserCategoryItemKey)建立数据库表spb_{UserCategoryItemKey}UserCategories。比如spb_BlogThreadUserCategories

: 关于表结构请参考数据库设计说明书中有关用户分类表的示例。

另外,你可以使用官方为你提供的模板,用关键词替换掉“{ UserCategoryItemKey }”,快速建表。

2.在你新加应用的业务逻辑层,新建UserCategoryItemKey.cs文件,为UserCategoryItemKeys类增加扩展方法{ UserCategoryItemKey }。

比如博客的扩展方法是

public static class UserCategoryItemKeysExtensions
    {
        /// <summary>
        /// 博客文章
        /// </summary>
        public static string BlogThread(this UserCategoryItemKeys userCategoryItemKeys)
        {
            return "BlogThread";
        }
}

3.最后你就可以在表现层像博客一样使用一对多关系的用户分类服务了


UserCategoryManager.Instance(UserCategoryItemKeys.Instance().BlogThread ()). CreateUserCategory (userCategory);
  • 内容项可以加入多个类别的情况

4.确定要使用多对多关系用户分类服务的实体关键词(MultiUserCategoryItemKeys),比如News

根据关键词(MultiUserCategoryItemKeys)建立数据库表

spb_{ MultiUserCategoryItemKey }UserCategories、

spb_{ MultiUserCategoryItemKey }sInUserCategories。

比如: spb_FriendUserCategories、spb_ FriendsInUserCategories

: 关于表结构请参考数据库设计说明书中有关多对多关系用户分类表的示例。

另外,你可以使用官方为你提供的模板,用关键词替换掉“{ MultiUserCategoryItemKeys }”,快速建表。

在你新加应用的业务逻辑层,新建MultiUserCategoryItemKeys.cs文件,为MultiUserCategoryItemKeys类增加扩展方法{ MultiUserCategoryItemKey}。

5.最后你就可以在表现层像资讯一样使用多对多关系用户分类服务了


MultiUserCategoryManager.Instance(MultiUserCategoryItemKeys.Instance().Friends()).CreateUserCategory (userCategory);


参考资料[ ]