<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      OnePiece 之 Asp.Net 菜鳥也來做開發(四)

      發現一張很有趣的圖片,雖然好像有點老了,僅供眾神娛樂。            上圖:    4~)(EUKAF5~L@%UG38ERE6Q

      YY部分僅供娛樂,請勿拍磚。正文部分,如有錯誤或不足,歡迎拍磚、指正。

      第三章 : OnePiece—數據庫設計

       

        嗯,基本的準備工作也做得差不多了。今天我們就在眾神的保佑下來做本系統的數據庫設計。   由于“OnePiece”的神力太大,春哥交待過,以我現在的功力是斷然不能夠一下全部做出來的,心太貪了到時候系統沒有做出來,人先廢掉了,那才是郁悶啊。所以,春哥叫先做系統的新聞模塊,我們就從新聞模塊做起吧。說白了也就是做一個傳說中的新聞發布系統。

        在做這個系統之前先說說我們整個系統的架構吧。系統架構,有我只聞其名的MVC,有多層架構,也有一些其它我還不聞其名的架構,這些方案都有自己的優缺點,如果你很感興趣的話可以問問神器“Google”,這里我就不多說了,因為事實上我對它們的了解也不多。關于這個系統的開發,我們采用多層架構來開發,為什么要采用多層架構呢?很簡單:因為這是目前唯一一個我知其名且勉強能會其意的架構,呃。。。狂吐血中。那么什么是多層架構呢?

        多層架構,就是“通過分解業務細節,將不同的功能代碼分散開來,更利于系統的設計和開發,同時為可能的變更提供了更小的單元?!保ú缓靡馑?,我網上找到的一個解釋之一,我覺得和我的理解差不多,也就是這個意思,把不同的操作封裝在不同的層當中,每個層都只負責自己部分的工作,而不用去當心其它的工作怎么完成。這樣就為團隊開發提供了方便,我們可以根據計劃分開編寫代碼。當然同時也對系統的模塊化和細化也有很大的作用。)下面來一個多層架構的典型圖解:


      上圖是一個典型的三層架構:

            1、表現層(UI):通俗講就是展現給用戶的界面,即用戶在使用一個系統的時候他的所見所得。

            2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。

            3、數據訪問層(DAL):該層所做事務直接操作數據庫,針對數據的增添、刪除、修改、更新、查找等。

        層是一種弱耦合結構,層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設計對于其調用的底層而言沒有任何影響。如果在分層設計時,遵循了面向接口設計的思想,那么這種向下的依賴也應該是一種弱依賴關系。因而在不改變接口定義的前提下,理想的分層式架構,應該是一個支持可抽取、可替換的“抽屜”式架構。

        三層架構的優缺點:

      優點:

      1、開發人員可以只關注整個結構中的其中某一層;

      2、可以很容易的用新的實現來替換原有層次的實現;

      3、可以降低層與層之間的依賴;

      4、有利于標準化;

      5、利于各層邏輯的復用。

      缺點:

      1、降低了系統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。

      2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。

      但是隨著軟件行業的發展,以及各種系統的業務越來越復雜,傳統的三層架構已經有點不能勝任了,于是出現了,在傳統的三層架構上發展而來的多層架構:

        關于這些理論的東西就說這么多了,因我我也只知道這么點了。呃。。。。。。園里有一篇介紹.Net的三層架構的文章大家可以看看:.Net三層架構

        本系統分層:DAL:數據訪問層(持久層);Model:模型層;BLL:業務邏輯層;WebUI:Web界面層;

        呃,關于架構就說這么多。現在正式進入數據庫設計,前面也說過了,我們先把系統中的新聞模塊完成所以數據庫的設計也先從新聞模塊做起,其它的模塊在后續的開發中再來進行設計編寫(這在實際開發中顯然是不行滴,但是由于我也只是第一次做開發,而且沒有外界壓力的,所以就先這么做了)

        新聞模塊的要求,如果忘記了的可以看看前面的系統分析,這里就不多說了。根據系統要求我抽象出了三個類,這三個類也就是我們設計數據庫的根據:

        NewsCategory類:新聞類別類,由于系統要求新聞類要有層次而且還要可以根據而要進行排序,所以在剛開始設計時其中加入了rank排序值 level所屬層 higherCaID上層的ID。寫這個的時候才發現,level好像用不著?。。。暫先留在這里把。大概是用不著的了,那就把Level屬性去掉。


        1 /*
        2  *創建人:Cat_Lee
        3  *創建時間:2009/8/26 14:43:03
        4  *說明:新聞類別類
        5  *版權所有:Cat_Lee 
        6  *歡迎訪問我的Blog:http://www.rzrgm.cn/cat-lee/
        7  */
        8 using System;
        9 using System.Collections.Generic;
       10 using System.Linq;
       11 using System.Text;
       12 
       13 namespace Model
       14 {
       15     public class NewsCategory
       16     {
       17         private int id;
       18         private int higherCaID;
       19         private int rank;
       20         private string name;
       21         /// <summary>
       22         /// 無參構造函數
       23         /// </summary>
       24         public NewsCategory()
       25         {
       26             higherCaID = -1;//-1表示是最高層,沒有上層類別
       27         }
       28         /// <summary>
       29         /// 構造函數
       30         /// </summary>
       31         /// <param name="name">類別名,默認為最高層</param>
       32         public NewsCategory(string name)
       33         {
       34             higherCaID=-1;
       35             this.name=name;
       36         }
       37         /// <summary>
       38         /// 構造函數
       39         /// </summary>
       40         /// <param name="name">類別名,默認為最高層</param>
       41         /// <param name="rank">排序值</param>
       42         public NewsCategory(string name, int rank)
       43         {
       44             higherCaID = -1;
       45             this.name = name;
       46             this.rank = rank;
       47         }
       48         /// <summary>
       49         /// 構造函數
       50         /// </summary>
       51         /// <param name="name">類別名</param>
       52         /// <param name="rank">排序值</param>
       53         /// <param name="higherCaID">上一級類別ID</param>
       54         public NewsCategory(string name, int rank, int higherCaID)
       55         {
       56             this.name = name;
       57             this.rank = rank;
       58             this.higherCaID = higherCaID;
       59         }
       60         /// <summary>
       61         /// 類別ID
       62         /// </summary>
       63         public int ID
       64         {
       65             get
       66             {
       67                 return id;
       68             }
       69             set
       70             {
       71                 id = value;
       72             }
       73         }
       74         /// <summary>
       75         /// 上級類別ID
       76         /// </summary>
       77         public int HigherCaID
       78         {
       79             get
       80             {
       81                 return higherCaID;
       82             }
       83             set
       84             {
       85                 higherCaID = value;
       86             }
       87         }
       88         /// <summary>
       89         /// 排序值
       90         /// </summary>
       91         public int Rank
       92         {
       93             set
       94             {
       95                 rank = value;
       96             }
       97             get
       98             {
       99                 return rank;
      100             }
      101         }
      102         /// <summary>
      103         /// 類別名
      104         /// </summary>
      105         public string Name
      106         {
      107             set
      108             {
      109                 name = value;
      110             }
      111             get
      112             {
      113                 return name;
      114             }
      115         }
      116     }
      117 }
      118 

       

        News類:新聞實體類。我想其中的名字應該可以自釋意。所以就不詳說了。只說明一點,其中的圖片titleImage和newsImages都是采用保存圖片路徑來保存圖片信息的,我也想過另建一個圖片表來專門管理圖片。不知道哪種方案好就采用了這個方法。你有什么好的建議也可以講講哦。


        1 /*
        2  *創建人:Cat_Lee
        3  *創建時間:2009/8/20 22:00:05
        4  *說明:新聞類
        5  *版權所有: Cat_Lee 
        6  *歡迎訪問我的Blog:http://www.rzrgm.cn/cat-lee/
        7  */
        8 using System;
        9 using System.Collections.Generic;
       10 using System.Linq;
       11 using System.Text;
       12 
       13 namespace Model
       14 {
       15    public class News
       16     {
       17        private string title;
       18        private int id;
       19        private string content;
       20        private int caID;
       21        private int rank;
       22        private bool isNew;
       23        private bool isHot;
       24        private bool isRecommend;
       25        private string titleImages;
       26        private string author;
       27        private string source;
       28        private string newsImages;
       29        private DateTime publishTime;
       30        /// <summary>
       31        /// 初始化,避免出現空引用異常
       32        /// </summary>
       33        public News()
       34        {
       35            title = "";
       36            content = "";
       37            titleImages = "";
       38            author = "";
       39            source = "";
       40            newsImages = "";
       41        }
       42        /// <summary>
       43        /// 發布時間
       44        /// </summary>
       45        public DateTime PublishTime
       46        {
       47            set
       48            {
       49                publishTime = value;
       50            }
       51            get
       52            {
       53                return publishTime;
       54            }
       55        }
       56        /// <summary>
       57        /// 標題
       58        /// </summary>
       59        public string Title
       60        {
       61            get
       62            {
       63                return title;
       64            }
       65            set
       66            {
       67                title = value;
       68            }
       69        }
       70        /// <summary>
       71        /// 新聞ID
       72        /// </summary>
       73        public  int ID
       74        {
       75            get
       76            {
       77                return id;
       78            }
       79            set
       80            {
       81                id = value;
       82            }
       83        }
       84        /// <summary>
       85        /// 所屬類別ID
       86        /// </summary>
       87        public int CaID
       88        {
       89            get
       90            {
       91                return caID;
       92            }
       93            set
       94            {
       95                caID = value;
       96            }
       97        }
       98        /// <summary>
       99        /// 新聞內容
      100        /// </summary>
      101        public string Content
      102        {
      103            set
      104            {
      105                content = value;
      106            }
      107            get
      108            {
      109                return content;
      110            }
      111        }
      112        /// <summary>
      113        /// 排序值
      114        /// </summary>
      115        public int Rank
      116        {
      117            set
      118            {
      119                rank = value;
      120            }
      121            get
      122            {
      123                return rank;
      124            }
      125        }
      126        /// <summary>
      127        /// 是否最新
      128        /// </summary>
      129        public bool IsNew
      130        {
      131            set
      132            {
      133                isNew = value;
      134            }
      135            get
      136            {
      137                return isNew;
      138            }
      139        }
      140        /// <summary>
      141        /// 是否熱點
      142        /// </summary>
      143        public bool IsHot
      144        {
      145            set
      146            {
      147                isHot = value;
      148            }
      149            get
      150            {
      151                return isHot;
      152            }
      153        }
      154        /// <summary>
      155        /// 是否推薦
      156        /// </summary>
      157        public bool IsRecommend
      158        {
      159            set
      160            {
      161                isRecommend = value;
      162            }
      163            get
      164            {
      165                return isRecommend;
      166            }
      167        }
      168        /// <summary>
      169        /// 標題圖片
      170        /// </summary>
      171        public string TitleImages
      172        {
      173            set
      174            {
      175                titleImages = value;
      176            }
      177            get
      178            {
      179                return titleImages;
      180            }
      181        }
      182        /// <summary>
      183        /// 新聞作者
      184        /// </summary>
      185        public string Author
      186        {
      187            set
      188            {
      189                author = value;
      190            }
      191            get
      192            {
      193                return author;
      194            }
      195        }
      196        /// <summary>
      197        /// 新聞來源
      198        /// </summary>
      199        public string Source
      200        {
      201            set
      202            {
      203                source = value;
      204            }
      205            get
      206            {
      207                return source;
      208            }
      209        }
      210        /// <summary>
      211        /// 新聞圖片
      212        /// </summary>
      213        public string NewsImages
      214        {
      215            set
      216            {
      217                newsImages = value;
      218            }
      219            get
      220            {
      221                return newsImages;
      222            }
      223        }
      224 
      225    }
      226 }
      227 

       

        Comment類:新聞評論類。注:user屬性后來發現改為UserID比較好,和用戶表中的用戶ID關聯。如果是非注冊用戶則和用戶表中的特定ID關聯。


        1 /*
        2  *創建人:Cat_Lee
        3  *創建時間:2009/8/26 14:42:35
        4  *說明:新聞評論類
        5  *版權所有: Cat_Lee 
        6  *歡迎訪問我的Blog:http://www.rzrgm.cn/cat-lee/
        7  */
        8 using System;
        9 using System.Collections.Generic;
       10 using System.Linq;
       11 using System.Text;
       12 
       13 namespace Model
       14 {
       15     public class NewsComment
       16     {
       17         private int id;
       18         private int newsID;
       19         private int userID;
       20         private DateTime commentTime;
       21         private string content;
       22 
       23         public NewsComment()
       24         {
       25             content = "";
       26         }
       27         /// <summary>
       28         /// 評論ID
       29         /// </summary>
       30         public int ID
       31         {
       32             set
       33             {
       34                 id = value;
       35             }
       36             get
       37             {
       38                 return id;
       39             }
       40         }
       41         /// <summary>
       42         ///所屬新聞ID
       43         /// </summary>
       44         public int NewsID
       45         {
       46             get
       47             {
       48                 return newsID;
       49             }
       50             set
       51             {
       52                 newsID = value;
       53             }
       54         }
       55        /// <summary>
       56        /// 評論人ID
       57        /// </summary>
       58         public int UserID
       59         {
       60             get
       61             {
       62                 return userID;
       63             }
       64             set
       65             {
       66                 userID = value;
       67             }
       68         }
       69         /// <summary>
       70         /// 評論時間
       71         /// </summary>
       72         public DateTime CommentTime
       73         {
       74             get
       75             {
       76                 return commentTime;
       77             }
       78             set
       79             {
       80                 commentTime = value;
       81             }
       82         }
       83         /// <summary>
       84         /// 評論內容
       85         /// </summary>
       86         public string Content
       87         {
       88             set
       89             {
       90                 content = value;
       91             }
       92             get
       93             {
       94                 return content;
       95             }
       96         }
       97 
       98     }
       99 }
      100 

       

      根據類設計出來 的數據庫如下圖:形成一條鏈式的關系結構,News的CategoryID與NewsCategory的ID關聯、Comment的NewsID與News的ID關聯。以表示它們的從屬關系。

      image

        呃,數據庫基本就是這個樣子的。以后還會逐步完善。

       

      小小菜鳥沒有開發經驗,對于本系列開發也沒有做什么準備,所以其中不免有錯誤或遺漏,還請諸位不吝賜教,小弟在此感激不盡。另外,由于在做OnePiece的開發的同時我也在不斷的學習和解決當中遇到的問題。所以文章發布的日期間隔或許會有些長,還請各位看官見諒。

      下集預告:第四章 : OnePiece—新聞模塊的數據訪問層;

      本站采用創作共用許可 署名,非商業 歡迎轉載,轉載請注明出處,并包括此段聲明 。 Cat_Lee @ cnblogs

      posted @ 2009-08-26 15:18  Cat_Lee  閱讀(1853)  評論(9)    收藏  舉報
      主站蜘蛛池模板: 黄又色又污又爽又高潮| 国产在线午夜不卡精品影院| 九九九精品成人免费视频小说| 亚洲日韩欧美一区二区三区在线 | 国产999精品2卡3卡4卡| 九九热精品在线视频免费| 临沧市| 人妻中文字幕一区二区视频| 邳州市| 野外做受三级视频| 国产成人综合色就色综合 | 精品综合一区二区三区四区| 亚洲中文字幕国产精品| 人妻在线无码一区二区三区| 国产午夜A理论毛片| 国产精品久久露脸蜜臀| 久久精品蜜芽亚洲国产av| 亚洲第一福利网站在线观看| 国产精品自拍视频我看看| 亚洲av综合色区无码专区| 久久亚洲日本激情战少妇| 国产亚洲欧美日韩在线一区| 精品国产亚洲午夜精品a| 人妻系列中文字幕精品| 国产乱码日产乱码精品精| 高台县| 视频一区视频二区卡通动漫| 日韩精品亚洲专在线电影| 亚洲综合成人av在线| 亚洲成色精品一二三区| 97午夜理论电影影院| 亚洲国产欧美日韩另类| 免费激情网址| 又大又粗又硬又爽黄毛少妇| 国产成人av免费观看| 日本黄页网站免费观看| 亚洲一本二区偷拍精品| 国内精品久久久久精免费| 国产精品不卡一区二区在线| 老妇xxxxx性开放| 中文字幕无码免费久久|