事實表和維表關係
本篇文章是根據自己的實戰,參考網上一些文章寫的,可能有相通的話語,請原諒,若有寫的不對的地方,希望指正。
以人才監測專案為例:人才+企業=人才專案,目前專案需求中個人隸屬於一個公司,同一個人才專案可同時申報市級別的、省級別的或其他專案,因此人才與專案的關係是一對多,人才和企業的關係的一對一。目前拿到的企業運營的資料是近5年的運營資料(收入、繳稅)。要求從個人的年齡段、國籍、性別等角度分析各個批次的入選人數(一般以半年作為一個批次);從企業所屬園區、創業方式、所屬行業分析各個批次的入選人數;篩選出累計收入大於1000w,或繳稅超多100w的各批次入選人數。
根據需求,在設計事實表和維表如下:
1)個人基礎資訊DIM_RCGRXXB,以個人關聯ID作為主鍵
2)企業基礎資訊DIM_RCQYXXB,以個人關聯ID作為主鍵
3)專案申報資訊FACT_XMSB,以個人關聯ID和申報層次(屬於市級別、省級別、國家級別)作為主鍵。每個入選專案的申請資訊都會錄入到這張表中,可能出現除了申報層次、申報年度、申報批次不同,但是其他資訊都一樣的資料。
4)企業運營資訊FACT_QYYUNYNG,以個人關聯ID和申報層次作為主鍵。同一個企業根據運營年份有不同的資料條數。ps:為了個人和申報的資訊相關聯,在源有資料的基礎上增加了層次這個欄位,知道會造成資料冗餘,但是想不到其他方法了。
1.一對一關係
目前是遇到的就是後臺資料庫中事實表和維表其實是同一張表,針對FACT_XMSB,因為已經將個人資訊(使用者ID、年齡段、性別、學科領域、國籍、籍貫等資訊)、企業資訊(創業方式、所屬行業、所屬園區等)單獨做了維表,這裡將專案申報時除了個人資訊、企業資訊外,涉及到的專案申報的相關資訊,如申報年度、申報層次、申報批次資訊做一張維表。直接用FACT_XMSB這張事實表做維表,命名為DIM_XMSB,將人才關聯ID和申報層次作為主鍵,申報年度、申報層次、申報批次作為維度成員。FACT_XMSB和DIM_XMSB的關係就是一對一的關係。
2.多對一關係
事實表和維表關聯,事實表中的多條記錄ID對應
以人才監測專案為例:人才+企業=人才專案,目前專案需求中個人隸屬於一個公司,同一個人才專案可同時申報市級別的、省級別的或其他專案,因此人才與專案的關係是一對多,人才和企業的關係的一對一。目前拿到的企業運營的資料是近5年的運營資料(收入、繳稅)。要求從個人的年齡段、國籍、性別等角度分析各個批次的入選人數(一般以半年作為一個批次);從企業所屬園區、創業方式、所屬行業分析各個批次的入選人數;篩選出累計收入大於1000w,或繳稅超多100w的各批次入選人數。
根據需求,在設計事實表和維表如下:
1)個人基礎資訊DIM_RCGRXXB,以個人關聯ID作為主鍵
2)企業基礎資訊DIM_RCQYXXB,以個人關聯ID作為主鍵
3)專案申報資訊FACT_XMSB,以個人關聯ID和申報層次(屬於市級別、省級別、國家級別)作為主鍵。每個入選專案的申請資訊都會錄入到這張表中,可能出現除了申報層次、申報年度、申報批次不同,但是其他資訊都一樣的資料。
4)企業運營資訊FACT_QYYUNYNG,以個人關聯ID和申報層次作為主鍵。同一個企業根據運營年份有不同的資料條數。ps:為了個人和申報的資訊相關聯,在源有資料的基礎上增加了層次這個欄位,知道會造成資料冗餘,但是想不到其他方法了。
1.一對一關係
目前是遇到的就是後臺資料庫中事實表和維表其實是同一張表,針對FACT_XMSB,因為已經將個人資訊(使用者ID、年齡段、性別、學科領域、國籍、籍貫等資訊)、企業資訊(創業方式、所屬行業、所屬園區等)單獨做了維表,這裡將專案申報時除了個人資訊、企業資訊外,涉及到的專案申報的相關資訊,如申報年度、申報層次、申報批次資訊做一張維表。直接用FACT_XMSB這張事實表做維表,命名為DIM_XMSB,將人才關聯ID和申報層次作為主鍵,申報年度、申報層次、申報批次作為維度成員。FACT_XMSB和DIM_XMSB的關係就是一對一的關係。
2.多對一關係
事實表和維表關聯,事實表中的多條記錄ID對應
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28573466/viewspace-2140981/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- BI中事實表和維度表的定義(轉載)
- 資料倉儲(8)數倉事實表和維度表技術
- 表的關聯關係
- Django(15)外來鍵和表關係Django
- ORM建立表關係ORM
- flink維表關聯絡列之Redis維表關聯:實時查詢Redis
- 【資料倉儲】全量表、快照表、增量表、拉鍊表、維度表、實體表、事實表
- MySQL表關係的理解MySql
- Hibernate中實體類對映檔案表與表的關係模版
- day23-必備SQL和表關係及授權SQL
- mysql~GROUP_CONCAT實現關係表的行轉列MySql
- PostgreSQL的表檔案以及TOAST表檔案對應關係SQLAST
- Laravel 模型間關係設定分表方法Laravel模型
- 通過遞迴實現,單表父子關係資料 或者上下級關係資料的組合遞迴
- Django中ORM外來鍵和表的關係(Django程式設計-4)DjangoORM程式設計
- MySQL Oracle 查詢快慢和表的資料量多少有沒有關係?MySqlOracle
- HBase 的結構與表的對應關係
- 零程式碼實現一對一表關係和無限主子表級聯儲存
- 記 Laravel-admin Form 表單 BelongsTo 關係模型在儲存前修改的注意事項LaravelORM模型
- 關於mysqldump備份非事務表的注意事項MySql
- [20211021]關於undo段頭事務表.txt
- MySQL建立資料表並建立主外來鍵關係MySql
- JPA關係對映系列五:many-to-many 關聯表存在額外欄位關係對映
- 10.Flink實時專案之訂單維度表關聯
- Oracle日曆表維護實踐:建表、準備資料Oracle
- 在 CSDN 上面看到的一篇關於 Laravel 關聯表模型和多對多關係的文章Laravel模型
- Laravel 中多型關係的表單驗證 (trait 版)Laravel多型AI
- 關係型資料庫全表掃描分片詳解資料庫
- 關係型資料庫分庫分表系列之一資料庫
- 如何把Oracle XML資料分解為關係型表AROracleXML
- 中間表是什麼?和報表有什麼關係?會帶來怎樣的問題?又如何解決?
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- Laravel 遠端一對多關係,中間表模型和關聯模型不能是同一個模型Laravel模型
- 資料庫入門之3張表對比關係型與非關係型資料庫資料庫
- 專案---累積型快照事實表sqlSQL
- 資料庫表中一對多關係怎麼設計?資料庫
- 關係建模ER建模-維度建模
- 作業系統記憶體管理:頁、頁表項和頁框之間的關係作業系統記憶體
- 生成mysql日期維表MySql