第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數(shù)據(jù)庫設計難題的求教

數(shù)據(jù)庫設計難題的求教

墨色風雨 2018-07-23 08:10:32
class="block_title"><a id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/linux254/archive/2008/11/20/1337836.html"></a><a id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/linux254/archive/2008/11/20/1337836.html"><span style="color: #800080;">數(shù)據(jù)庫設計難題的求教</span></a>&nbsp;</h1> <div class="post"> <div class="postcontent"> <p>最近在設計一個數(shù)據(jù)庫,但是碰到這樣一個難題,一直找不到合適的解決方案,希望有過類似經(jīng)驗的高手能夠幫忙分析下,看有沒有好的處理策略。</p> <p>舉個管道建設中的例子吧,同樣有三個對象:<br />管道:起點連接對象,結(jié)束點連接對象,管道的其他屬性信息<br />管件:管件名稱、管件類型<br />設備:設備名稱、設備編號、設備所屬單位<br /><br />關系是:管道的起點和終點連接管件或者設備,而設備和管件沒有多少屬性是相同的,所以不能合并,這時候表的關系應該如何建?<br /><br />目前的一種考慮是使用軟關聯(lián),就是在管道的表里用4個字段,分別是起點對象類型和起點對象ID,終點連接類型和終點連接ID,但是數(shù)據(jù)庫建模時這種關系無法用實體關系圖合理的展示,也無法在數(shù)據(jù)庫中用外鍵關系來描述,無法保證數(shù)據(jù)的完整性,所以感覺不是很好的解決方案,想知道大家有沒有更好的思路。:)
查看完整描述

2 回答

?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

其實不必追求實體關系圖的合理,也未必非要用外鍵,雖然可以沒有約束,但是依然可以由程序來很好的管理這些

不過非要追求這個的話,我以前倒是做過一個,效果也還可以,可以參考一下:

管道表里包括:起點連接管件ID、起點連接設備ID、終點連接管理ID、終點連接設備ID、其他屬性信息

前面四個ID都是外鍵,管件ID和設備ID分別關聯(lián)到各自的表,四個都設置為可空,這樣在程序中或者select時判斷一下到底取哪個,但依然存在的問題是必須由程序來保證起點和終點都各自只有一個ID,另一個要為NULL。

另外一個辦法,可以避免這個很麻煩的判斷,但是其他地方要麻煩一些,還是這些字段,增加一個起點連接類型和終點連接類型,select的時候在inner join中除了ID關聯(lián)之外,增加對連接類型的條件,另外也可以使用union all來進行查詢


查看完整回答
反對 回復 2018-07-25
?
幕布斯7119047

TA貢獻1794條經(jīng)驗 獲得超8個贊

添加一個中間表,有4個字段:

管道ID、

起點或中點【管道的起點還是終點】、


連接對象類型【管道的起點或終點是設備還是管件】、

連接對象ID【管件或設備的ID】


查看完整回答
反對 回復 2018-07-25
  • 2 回答
  • 0 關注
  • 972 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號