Mysql

為具有唯一字母數字名稱的表和列創建描述性標籤的最佳方法是什麼?

  • March 18, 2021

我有一個包含 1,050 個表的數據庫,這些表具有唯一的字母數字名稱,例如B02001B07009B20017F,每個表都有名為B02001_001B02001_002B02001_003等的列。我正在嘗試創建一種按實際主題和標題搜尋表格的方法。

例如,如果表B07009的主題是,Educational Attainment列,,,B07009_001是, B07009_002等等,我如何創建一種方法來搜尋數據庫中匹配“教育”或“專業”或“通勤時間”的表並獲取列我需要?有些表有超過 100 個列,名稱超過 64 個字節,這就是為什麼我不能簡單地用它們的描述性名稱命名表和列。B07009_003``High School Diploma``Some College``Bachelor's Degree or Higher

我嘗試創建一個名為的表,labels但有些表有數百列(如 Professions 表)並且超過了 8192 字節的 postgres 行大小限制。我還考慮將每個表和列的標籤儲存在 json 文件中,並在執行 SQL 語句之前使用 python 搜尋它。解決這個問題的最佳方法是什麼?

(MySQL…)

考慮編寫一個腳本(比如 Perl)來檢查模式所有相關的原始碼。無論在哪裡找到“B07009”,它都會將其轉換為“B07009_Educational_Attainment”,然後截斷為 32 個字元。

  • 將原始名稱作為新名稱的一部分可確保唯一性。
  • 32 很凌亂,但通常會包含足夠的含義。
  • 一直到 64 有可能達到其他一些沒有很好記錄或檢查的限制。(在 8.0 的數據字典中,有些東西是“db_name/table_name”,技術上需要限制為不少於 129,但我懷疑它或類似的東西有一個不好的限制。)
  • 如果 JOIN 使用別名作為表名,我希望它們是,請注意適用於它們的重命名。

100 列非常難看,但在大多數情況下,由 MySQL 處理。

引用自:https://dba.stackexchange.com/questions/287267