成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對Oracle數據庫設計中字段的正確使用方案

數據庫 Oracle
本文主要介紹的是Oracle數據庫再設計中字段的使用方法,以及再實際操作中涉及到的常用的字段的幾種常見類型的介紹。

我們大家都了解Oracle數據庫有很多的優點,但是你如果對其使用不當的話,是不能展現出它的優勢,以下就本人在Oracle開發的過程中所積累的相關經驗,以下的文章就是對相關內容的描述。

一、 Oracle數據庫設計中字段的使用

 

在一些表的設計中,有一些常用的這段,已經基本成為一個規范,在大型系統中,多可以看到這些字段的蹤影,當然字段的名字可能有所不同。常用的字段分為以下幾類:

1.WHO字段

這類字段多用于記錄每行記錄的操作變更信息,比如是誰添加的這行記錄,誰做過修改等,詳細說明如下:

字段名稱

類型

 

說明

 

 

 

  1. LAST_UPDATE_DATE  
  2. DATE 

 

 

***修改日期

 

 

 

  1. LAST_UPDATED_BY  
  2. NUMBER(15) 

 

 

***修改人

 

 

 

  1. CREATION_DATE  
  2. DATE 

 

 

創建日期

 

 

 

  1. CREATED_BY  
  2. NUMBER(15) 

 

 

創建人

 

I.創建人

在任何一個系統中,一般都會有一個權限驗證和登錄的過程,在登錄后,會在系統的內存中記錄登錄人的信息,當此人在對Oracle數據庫的某個表進行添加操作的時候,會同時把這個操作人員的ID值寫入表中,供后期統計及審計

II.創建時間

與創建人的含義類似,在創建的同時,寫入系統的當前時間,這個字段的值一般取自于服務器而不是客戶端,比如在oracle中,可以直接使用SYSDATE作為這個字段的值

III.***修改人

一條記錄被創建后,同樣會有被修改的可能性,這里需要對修改的人進行一個記錄,以便于后期審計。

但是這里要注意的是,這里只記錄***的修改信息,如果一條記錄經過多次的修改,中間的修改將無跡可尋,如果需要記錄詳細修改信息,需要使用日志功能,已經超出此字段的功效。

IV.***修改日期

與***修改人同時寫入記錄中,同理,也是記錄***一次修改的時間,中間的修改均被***一次覆蓋。

2. 狀態及有效期字段

在一些新聞類的內容中,經常會涉及到一個時效性,即一條新聞可能只在某一個時間段內是對外可見的,超過這個時間段則將不允許發布,還有就是有些時候如果發現某些內容有問題,需要暫時對外屏蔽的時候,就可以用到狀態字段,詳細說明如下:

字段名稱

類型

 

說明

 

 

STATUS

 

NUMBER

 

狀態

 

 

START_DATE

 

DATE

 

有效開始日期

 

 

END_DATE

 

DATE

 

有效結束日期

 

I.狀態

這個字段一般用數值型表達,0表示失效,1表示有效,當然在使用的時候,可以把這兩個值進行轉義,用“有效”和“失效”來顯示,不影響存儲方式。

失效不等于刪除,經過失效的內容,經過管理程序的調整,把狀態變成有效后,還可以恢復正常使用。

II.有效開始日期

這個字段如果填有具體的值,只有當時間超過這個時間后,信息才是有效的,在這個日期之前,信息將自動按無效處理,特別需要注意的是,如果這個字段置空,應該按跳過這個條件檢查來處理,這樣可以實現程序的靈活性。

III.有效結束日期

具體含義同上,只是超過此期,內容將按失效處理。

3.邏輯刪除

在Oracle數據庫系統中處理的刪除的做法一般有兩種:物理刪除和邏輯刪除,所謂物理刪除,就是在數據庫中直接使用delete等命令,從數據庫里把數據真正的刪除,這種刪除從正常途徑將無法恢復數據,雖然可以部分程度減小整體的數據量,但不利于審計跟蹤;邏輯刪除指的是對數據不做任何刪除處理,而是對記錄打個標記,也就是在某個字段上賦值,表示此記錄已經刪除。

邏輯刪除的處理邏輯只由應用程序自己使用,因為數據在Oracle數據庫中實際還是存在的。

所涉及字段如下:

字段名稱

類型

 

說明

 

 

DELETED

 

NUMBER

 

是否刪除

 

 

DELETE_DATE

 

DATE

 

刪除時間

 

 

DELETED_BY

 

NUMBER

 

刪除人

 

I. 刪除標志

此字段有兩個取值,0表示正常,1表示已經刪除。

打上刪除標志后,所以的查詢語句必須同時在判斷條件的地方加上deleted=0的條件,否則會造成重大的失誤。

II. 刪除時間

與刪除標志一起使用,表示刪除的時間,可以使用當前服務器的時間,用sysdate來填充即可。

III. 刪除人

與***修改人類似,需要記錄刪除的具體操作人員

刪除與標志位不同,采用標志位的方式,雖然前端無法展示數據,但是后臺管理人員人一樣可以通過管理程序來調整該狀態,但是刪除標志則不同,確認刪除后,對整個應該來講,這條記錄都應該理解為不存在了。

4. 自增字段

所謂自增字段,是指隨著使用,它可以自動增加的字段。

這種字段的值一般沒有明確的含義,只用于一個唯一標識,這個字段一般也會設置成主鍵。

如果應用只針對Oracle,而不考慮數據庫無關性,那么sequence無非是***的一個選擇。對于以前用習慣MSSQL等其它數據庫的朋友來說,Oracle這種用法簡直是太費勁了,要花很大的功夫才能做好一個自增字段,但是正因為如此,它也帶來了其它Oracle數據庫不能相比的優點,舉例來說。

一個訂單系統,即有訂單頭,又有訂單行,一般是先插入訂單頭,再插入訂單行,對于MSSQL等數據庫的自增字段,只有插入后才知道具體的ID值是多少,那么寫入后,還要返查一下這個字段值再給訂單行使用;而對于oracle來說,只要先從sequence里取出一個值來,頭和行一起使用即可,最主要是的sequence的效果是非常高的,不需要擔心性能問題。

5. 彈性字段

在Oracle數據庫表結構設計的時候,***多留出幾個備用的字段來,因為隨著系統的使用,一般會有增加字段的需求。預留字段的好處是,只要需要的時候啟用即可,不需要進行DDL操作,對數據庫后期維護的風險很低,并且一般的DDL操作,會造成級聯的VIEW/PACKAGE等程序失效,預留了彈性字段,則不會有這個問題。

預留的字段也可以按類型分成三種:字符串型,數值型及日期型,可以每個類型預留10個,或根據需要來決定,可以采用如下的樣式:

 

  1. NUMBER_ATTRIBUTE1  
  2. STRING_ATTRIBUTE1  
  3. DATE_ATTRIBUTE1  

 

彈性字段如果不啟用,會不會占用過多的存儲空間呢,答案是否定的,因為在這種大型Oracle數據庫的結構中,只有一個字段真正被用到的時候,才會去占用實際的空間,否則它只是一個“說明”,并不占用實際的空間,所以不會造成空間浪費。

6. 拆分字段

這并不是一個字段的類型,而是指在表設計的時候,可以適當的把一個大表拆成不同的小表來存儲,比如用戶表,可以包括登錄名,密碼,姓名,生日,等一系列的字段,在某些情況下,包括的會員屬性可能達到上百個之多。

在數據量小的時候,無論怎么樣的存儲,都不會有性能問題,但是當數據量比較大的時候,就必須考慮性能問題。如果索引比較合理,不管數據量多大,一般查詢速度都不會太慢,但是當某些特別情況,不能使用索引的時候,就會產生FTS(所謂的全表掃描),那么掃描一個小表和掃描一個大表所占的時間就完全不一樣了,所以建議比較大的表分開存儲,把常用的幾個字段單獨提取出來,這樣即便全表掃描,也能比較好的控制效率。

在使用的時候,只要主表和子表都有索引,把它們聯合起來查詢,和一個真正的大表的效果基本上是一樣的,雖然性能肯定比一個真實的大表慢一點,但是和另一方面的性能提升比較起來,是值得的。目前有些大的系統采用這種拆分方式

【編輯推薦】

  1. 用Oracle屏蔽英文來提示信息的正確方法
  2. Oracle細粒度如何進行訪問
  3. Oracle數據庫的異構服務原理描述
  4. Oracle使用hints的調整機制實操
  5. 在Oracle數據庫中使用PL操作COM對象
責任編輯:佚名 來源: 博客園
相關推薦

2010-05-05 14:13:52

Oracle數據

2010-04-26 18:32:48

Oracle數據庫

2010-04-23 14:32:01

Oracle數據庫

2010-06-01 09:22:35

MySQL數據庫

2010-04-29 10:56:46

Oracle數據庫

2010-05-07 13:28:43

Oracle數據庫

2010-03-31 19:34:03

Oracle數據庫

2010-04-22 15:53:06

Oracle數據庫

2010-04-13 10:32:40

Oracle數據庫編程

2010-04-19 13:59:17

Oracle 數據庫

2010-04-29 11:53:42

Oracle數據庫

2011-08-10 15:38:12

ConstraintOracle

2010-05-05 10:19:19

Oracle數據導

2011-05-26 14:18:49

Oracle數據庫字段屬性

2010-05-04 11:02:44

Oracle數據庫

2010-05-26 11:21:00

MySQL數據庫操作

2010-06-10 17:19:05

MySQL數據庫

2010-04-14 13:14:46

Oracle數據庫

2010-04-12 15:53:09

Oracle

2010-04-22 15:42:34

Oracle數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线中文av| 亚洲人在线 | 国外激情av | 亚洲国产精品久久久久秋霞不卡 | 亚洲影音先锋 | 毛片av免费看 | 91久久国产综合久久 | 国产精品久久性 | 国产特一级黄色片 | 国产第一页在线观看 | 欧美mv日韩mv国产网站91进入 | 日韩午夜| 最新中文字幕久久 | 亚洲欧美日韩精品久久亚洲区 | 精品一区免费 | 久久久久久久久久久久久9999 | 国产一区不卡在线观看 | 91色在线 | 成人午夜在线观看 | 久草在线影 | 午夜精品91| 亚洲国产成人精品女人久久久 | 国产综合视频 | 日本中文字幕一区 | 日韩精品一区二区三区中文字幕 | 精品91久久久 | 国产精品中文 | 国产色网站 | 国产免费让你躁在线视频 | 中文字幕电影在线观看 | 亚洲午夜三级 | 蜜桃久久 | 久久精品免费 | 欧美一级网站 | 欧美涩| 99爱国产| 亚洲精品永久免费 | 色婷婷一区二区三区四区 | 操皮视频 | 一级片在线播放 | 亚洲精品欧美一区二区三区 |