[20180309]不好的資料結構設計.txt
[20180309]不好的資料結構設計.txt
--//昨天檢查生產系統,看到一個表段增長很快.仔細檢查發現是正常的,但是表結構設計存在問題.
1.環境:
xxxxx> @ &r/ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
xxxxx> @ &r/desc XXXXXX_YYY.MS_RECIPE_SIGN
Name Null? Type
------------------------------- -------- ----------------------------
1 CFSB NOT NULL NUMBER(18)
2 RECIPE_CAKEY VARCHAR2(2000)
3 RECIPE_CFCA VARCHAR2(3000)
4 PHARMACY_PYR_CAKEY VARCHAR2(2000)
5 PHARMACY_PYR_CFCA VARCHAR2(3000)
6 PHARMACY_FYR_CAKEY VARCHAR2(2000)
7 PHARMACY_FYR_CFCA VARCHAR2(3000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 RECIPE_CFCA_TSS VARCHAR2(3000)
9 RECIPE_CFYW VARCHAR2(2000)
10 PHARMACY_PYR_CFCA_TSS VARCHAR2(3000)
11 PHARMACY_PYR_CFYW VARCHAR2(2000)
12 PHARMACY_FYR_CFCA_TSS VARCHAR2(3000)
13 PHARMACY_FYR_CFYW VARCHAR2(2000)
--//下劃線的欄位估計應該是最近增加的.
xxxxx> select * from dba_objects where object_name='MS_RECIPE_SIGN';
OWNER OBJECT_NAME SUBOBJECT_ OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS T G S NAMESPACE EDITION_NAME
------ -------------------- ---------- ---------- -------------- ------------------- ------------------- ------------------- ------------------- ------- - - - ---------- ------------------------------
PORTAL MS_RECIPE_SIGN 108097 108097 TABLE 2015-07-22 09:51:42 2017-11-14 09:09:14 2017-11-14:09:09:15 VALID N N N 1
--//很明顯2017-11-14 09:09:14修改了資料結構,增加6個欄位.
xxxxx> select * from DBA_COL_COMMENTS where table_name='MS_RECIPE_SIGN' and comments is not null;
OWNER TABLE_NAME COLUMN_NAME COMMENTS
---------- ---------------- ---------------------- -------------------
XXXXXX_YYY MS_RECIPE_SIGN RECIPE_CFCA_TSS 處方時間 戳簽名值
XXXXXX_YYY MS_RECIPE_SIGN RECIPE_CFYW 處方原文
XXXXXX_YYY MS_RECIPE_SIGN PHARMACY_PYR_CFCA_TSS 配藥人時間戳簽名值
XXXXXX_YYY MS_RECIPE_SIGN PHARMACY_PYR_CFYW 配藥人 處方原文
XXXXXX_YYY MS_RECIPE_SIGN PHARMACY_FYR_CFCA_TSS 發藥人時間戳簽名值
XXXXXX_YYY MS_RECIPE_SIGN PHARMACY_FYR_CFYW 發藥人 處方原文
6 rows selected.
--//注:有6個欄位有說明,也說明是最近一段時間增加的.因為以前不要求開發增加欄位說明,我多次強調,許多開發以後根本不知道這些欄位的含義.
--//特別是一些表示狀態的欄位.更滑稽可笑我要求儘量完善欄位的說明時,領導給我的建議遇到不懂的時候問開發,無語,我每天沒事看,天天問人家
--//那個欄位表示什麼意思嗎?再說,許多情況下開發根本不清楚,而且我曾經提交文件,僅僅需要知道經常access的表,已經縮小了範圍.
--//一個處方,經歷N多人的簽名認證,才有效.
2.應該這樣設計:
MS_RECIPE_SIGN 修改如下:
CFSB NOT NULL NUMBER(18)
CA_TYPE NOT NULL VARHCAR2(1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RECIPE_CAKEY VARCHAR2(2000)
RECIPE_CFCA VARCHAR2(3000)
--//增加1個欄位CA_TYPE. 說明是CAKEY型別: 比如'1' 表示 RECIPE, '2' 表示 PHARMACY_PYR , '3' 表示 PHARMACY_FYR.
--//再增加一個表MS_RECIPE_TSS.
MS_RECIPE_TSS表結構設計如下:
CFSB NOT NULL NUMBER(18)
TSS_TYPE NOT NULL VARCHAR2(1)
RECIPE_CFCA_TSS VARCHAR2(3000)
RECIPE_CFYW VARCHAR2(2000)
--//TSS_TYPE ,說明TSS的型別. 比如'1' 表示 RECIPE_CFCA, '2' 表示 PHARMACY_PYR_CFCA, '3' 表示 PHARMACY_FYR_CFCA.
--//變原來的插入後不斷修改為不斷的插入操作,避免大量的行連結以及行遷移.而且還可以把這些表放入單獨的32K表空間.節約磁碟空間.
--//可惜,一旦這樣設計修改許多困難,真不知道開發關聯式資料庫如何學的.連最基礎的東西都沒學好,寫什麼狗屁程式....
--//更大的問題,許多表結構都像上面那樣設計,無語啊無語....
--//國內的IT教育真的很成問題....
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2151657/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20180312]不好的資料結構設計3.txt資料結構
- [20190930]關於資料結構設計問題.txt資料結構
- 複雜的資料結構設計求解?資料結構
- 理解 Golang 的 map 資料結構設計Golang資料結構
- 軟體設計師:資料結構資料結構
- JavaScript資料結構之連結串列--設計JavaScript資料結構
- Java 程式設計技巧之資料結構Java程式設計資料結構
- 程式設計師必須掌握的資料結構 2程式設計師資料結構
- 剖析JS和Redis的資料結構設計:陣列JSRedis資料結構陣列
- 程式設計師必須掌握的資料結構 1程式設計師資料結構
- SAP Commerce Cloud Spartacus UI 的 ActionClass 資料結構設計CloudUI資料結構
- 競拍系統設計和核心資料結構資料結構
- 資料結構,雜湊表hash設計實驗資料結構
- Java程式設計生涯你必須要了解的資料結構Java程式設計資料結構
- 資料結構而非演算法是程式設計的核心 - theartofmachinery資料結構演算法程式設計Mac
- 程式設計師內功修煉之資料結構程式設計師資料結構
- 資料結構課程設計報告——暢通工程資料結構
- .NET併發程式設計-資料結構不可變性程式設計資料結構
- [20230306]oracle 19c alert日誌日期格式設計不好的一個地方.txtOracle
- 資料結構之計數排序資料結構排序
- 為什麼我害怕資料結構學得好的程式設計師?資料結構程式設計師
- 架構師日記-從資料庫發展歷程到資料結構設計探析架構資料庫資料結構
- 資料庫設計總結資料庫
- 結構化資料、半結構化資料和非結構化資料
- 《Redis設計與實現》筆記 -- 資料結構與物件Redis筆記資料結構物件
- 【web】資料庫應用系統設計體系結構Web資料庫
- 結構化資料儲存,如何設計才能滿足需求?
- RecyclerView的基本設計結構View
- 【資料結構篇】認識資料結構資料結構
- Redis設計與實現閱讀總結(一)資料結構和物件Redis資料結構物件
- 資料脫敏大資料架構設計大資料架構
- 【C++ 資料結構:連結串列】二刷LeetCode707設計連結串列C++資料結構LeetCode
- 中級JAVA程式設計師應該掌握的資料結構知識Java程式設計師資料結構
- C++資料結構和pb資料結構的轉換C++資料結構
- 結構化資料與非結構化資料的差異
- 設計randompool結構random
- c++11併發程式設計歷程(15):併發設計以及併發設計資料結構的思考C++程式設計資料結構
- 架構設計之資料分片架構