您好,登錄后才能下訂單哦!
問題
數據操作中的查詢是極端重要的,使用頻繁。MySQL數據庫中視圖概念的存在十分類似于微軟Access小型關系數據庫中的查詢(二級考試重點)。視圖的存在極大減小了數據表的創建數量,而且還有更為高級的運用技巧。本文介紹在基于起步科技的BeX5平臺上使用MySQL數據庫中視圖時反向生成本體時注意的一個小問題。
MySQL數據庫中表在BeX5平臺開發中對應于“物理表”概念,但是為了增強軟件開發中數據層的靈活性(軟件需求階段的實體結構不是一下百分之分確定的;有時需要不斷調整),平臺引入了本體的概念。
實際開發中,一般需要先創建本體,再由本體生成物理表。但是,有時在已經存在物理表的情況下,也需要由物理表反向生成本體。
上面提到了視圖(相當于ACCESS的選擇查詢)的重要性;但是,要想在BeX5平臺開發中使用視圖技術,則必然需要和本體打交道。這就需要由視圖反向生成本體。
第一,在MySQL中創建視圖是比較簡單的,如下例:
CREATE VIEW v AS mv_homepage_person_view SELECT a.fID,a.fLegCode,a.fCaseName,a.fBeginDate,a.fWho,b.fPersonName,c.fEndDate FROM MV_LegInfo a,MV_Person2 b,MV_Penalty2 c where a.fLegCode=b.fLegCode and b.fLegCode=c.fLegCode
上述視圖一旦保存,便生成MySQL中的一個物理表(這一點與Access的生成表查詢是一致的)。
第二,在平臺端即可由上述由視圖創建的表反向生成平臺開發要求的本體。
此過程中,許多初次使用這個功能的同學往往在創建上面視圖時忽略了字段a.fID的選擇,而這個字段在默認的平臺生成的本體中是擔當主鍵作用的,而且其默認值為guid()。如果不選擇這個字段,則創建UI2端.W文件時引用此本體對應的ACTION必然出現錯誤(提示大致內容是缺少fID字段)!
解決辦法
經過上面分析,解決上述問題的辦法就很簡單了。但是,要注意兩個小問題:
(1)在上面創建視圖時一定要選擇某一個表的fID字段(其實也未必一定是這個字段,只要是直到主鍵作用的字段理論上講都可以--但后面的guid()函數很可以不再適合了,需要根據需要靈活表達)。
(2)在反向生成本體后,一定要修改一下“主鍵關系”,類似于下圖:
點擊上面的“主鍵關系”后在彈出的對話框中選擇你創建視圖時選擇的主鍵即可。當然,在此高度建議使用默認的fID作為主鍵。這就要求生成視圖的子表中要提供fID字段(這個是平臺默認支持的)。
之后的其他操作便不再贅述。盡管視圖生成的子表是“死”的,但是由于創建視圖的create view語句可以輕松修改,即可以根據開發需要隨時創建需要的這種臨時表;所以,視圖的應用在數據庫端是高頻的。相應地,在BeX5平臺上由視圖反向生成本體的操作也會是高頻的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。