我在嘗試對Oracle中的數據庫進行反向工程。我已經能夠找到與外鍵相對應的主鍵和參照完整性規則,但無法找到模態/基數規則存儲的位置。如何檢查Oracle中關係的模態/基數
任何關於要查看哪個表或示例查詢的幫助將不勝感激。
我在嘗試對Oracle中的數據庫進行反向工程。我已經能夠找到與外鍵相對應的主鍵和參照完整性規則,但無法找到模態/基數規則存儲的位置。如何檢查Oracle中關係的模態/基數
任何關於要查看哪個表或示例查詢的幫助將不勝感激。
我認爲你必須檢查指柱有nullable
:
SELECT column_name, nullable
FROM user_tab_cols
WHERE table_name = '<TABLE_NAME>'
和獨特的指數上指列:
SELECT idx.index_name, col.column_name
FROM user_indexes idx
JOIN user_ind_columns col ON (col.index_name = idx.index_name)
WHERE idx.uniqueness = 'UNIQUE'
AND idx.table_name = '<TABLE_NAME>'
你是什麼模式/基數規則是什麼意思?
就Oracle而言,FK關係始終爲1:N。我猜可以通過在相同的字段上但在相反的方向上有兩個FK關係來強制執行1:1。
關於基數的唯一的其他'規則'是唯一的鍵,但我認爲你已經有了這些。如果不是,這可能幫助:
http://www.eveandersson.com/writing/data-model-reverse-engineering#constraints
根據數據庫的設置,你也可能會發現啓發式約值的列基數:
select * from user_tab_col_statistics
尤其是值「NUM_DISTINCT '可能有一定的價值。
如果您正在尋找在數據字典的更多信息,我建議這個選擇對於初學者
select * from dict
where lower(comments|| '@' || table_name) like '%whatareyoulookingfor%'