
1、使用方法
模式可以用多種方式組織資料。下面是一些建議使用的模式,它們也很容易在預設配置中得到支援:
● 如果沒有建立任何模式,那麼所有使用者都預設通路 public 模式。這樣就模拟了沒有模式的時候的情景。 這種設定建議主要用在隻有一個使用者或者資料庫裡隻有幾個合作使用者的情形。 這樣的設定也允許我們平滑地從無模式的環境過渡。
● 你可以為每個使用者建立一個模式,名字和使用者相同。要記得預設的搜尋路徑從$user開始, 它會解析為使用者名。是以,如果每個使用者都有一個獨立的模式,那麼他們預設時通路他們自己的模式。
如果你使用了這樣的設定,那麼你可能還想撤銷對 public 模式的通路(或者删除它), 這樣,使用者就真的限制于他們自己的模式了。
● 要安裝共享的應用(被所有人使用的表、第三方提供的額外函數等等), 我們可以把它們放到獨立的模式中。隻要記得給需要通路它們的使用者賦予合适的權限就可以了。 然後使用者就可以通過用一個模式名修飾來使用這些額外的對象,或者他們可以把額外的模式放到他們的搜尋路徑中。
2、移植性
在 SQL 标準裡,在同一個模式裡的對象被不同的使用者所有的概念是不存在的。而且, 有些實作不允許你建立和它們的所有者不同名的模式。實際上, 模式的概念和使用者在那些隻實作了标準中規定的基本模式支援的資料庫系統裡幾乎是一樣的。 是以,許多使用者考慮對名字加以修飾,使它們真正由username.tablename 組成。如果你為每個使用者都建立了一個模式,這實際上就是OushuDB的行為。
同樣,在 SQL 标準裡也沒有public模式的概念。為了最大限度地遵循标準, 你不應該使用(可能甚至是應該删除)public模式。
當然,有些資料庫系統可能根本沒有模式,或者是通過允許跨資料庫通路來提供模式的功能。 如果你需要在這些系統上幹活,那麼為了最大限度的移植性,應該根本不使用模式。