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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在數(shù)據(jù)庫中表示繼承?

如何在數(shù)據(jù)庫中表示繼承?

溫溫醬 2019-05-29 15:57:14
如何在數(shù)據(jù)庫中表示繼承?我正在考慮如何在SQL Server數(shù)據(jù)庫中表示復(fù)雜的結(jié)構(gòu)??紤]一個(gè)需要存儲(chǔ)一系列對(duì)象細(xì)節(jié)的應(yīng)用程序,這些對(duì)象共享一些屬性,但有許多其他屬性不常見。例如,商業(yè)保險(xiǎn)計(jì)劃可能包括同一保單內(nèi)的責(zé)任,汽車,財(cái)產(chǎn)和賠償保險(xiǎn)。在C#等中實(shí)現(xiàn)它是微不足道的,因?yàn)槟梢詣?chuàng)建一個(gè)帶有Sections集合的Policy,其中Section是根據(jù)各種類型的封面所需繼承的。但是,關(guān)系數(shù)據(jù)庫似乎不容易這樣做。我可以看到有兩個(gè)主要選擇:為所有可能的變體創(chuàng)建一個(gè)Policy表,然后是一個(gè)Sections表,其中包含所需的所有字段,其中大部分都是null。創(chuàng)建一個(gè)Policy表和許多Section表,每個(gè)表對(duì)應(yīng)一種封面。這兩種替代方案似乎都不令人滿意,特別是因?yàn)楸仨氃谒蠸ections中編寫查詢,這將涉及大量連接或大量空檢查。這種情況的最佳做法是什么?
查看完整描述

4 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

第三個(gè)選項(xiàng)是創(chuàng)建一個(gè)“Policy”表,然后是一個(gè)“SectionsMain”表,它存儲(chǔ)所有部分類型中共同的所有字段。然后為每種類型的部分創(chuàng)建其他表,這些表只包含不常見的字段。

確定哪個(gè)最佳取決于您擁有的字段數(shù)以及編寫SQL的方式。他們都會(huì)工作。如果你只有幾個(gè)領(lǐng)域,那么我可能會(huì)選擇#1。對(duì)于“很多”的領(lǐng)域,我會(huì)傾向于#2或#3。


查看完整回答
反對(duì) 回復(fù) 2019-05-29
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

根據(jù)提供的信息,我將對(duì)數(shù)據(jù)庫建模以具有以下內(nèi)容:

政策

  • POLICY_ID(主鍵)

負(fù)債

  • LIABILITY_ID(主鍵)

  • POLICY_ID(外鍵)

性能

  • PROPERTY_ID(主鍵)

  • POLICY_ID(外鍵)

......依此類推,因?yàn)槲蚁M叩拿總€(gè)部分都有不同的屬性。否則,可能會(huì)有一個(gè)SECTIONS表,除此之外policy_id,還有section_type_code...

無論哪種方式,這將允許您支持每個(gè)策略的可選部分......

我不明白你對(duì)這種方法的不滿意 - 這是你在保持參照完整性而不是復(fù)制數(shù)據(jù)的同時(shí)存儲(chǔ)數(shù)據(jù)的方式。這個(gè)詞是“標(biāo)準(zhǔn)化的”......

因?yàn)镾QL是基于SET的,所以它對(duì)于程序/ OO編程概念來說相當(dāng)陌生,并且需要代碼從一個(gè)領(lǐng)域轉(zhuǎn)換到另一個(gè)領(lǐng)域。通常會(huì)考慮ORM,但它們?cè)诖笈繌?fù)雜系統(tǒng)中不能很好地工作。


查看完整回答
反對(duì) 回復(fù) 2019-05-29
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

另一種方法是使用INHERITS組件。例如:

CREATE TABLE person (
    id int ,
    name varchar(20),
    CONSTRAINT pessoa_pkey PRIMARY KEY (id));CREATE TABLE natural_person (
    social_security_number varchar(11),
    CONSTRAINT pessoaf_pkey PRIMARY KEY (id)) INHERITS (person);CREATE TABLE juridical_person (
    tin_number varchar(14),
    CONSTRAINT pessoaj_pkey PRIMARY KEY (id)) INHERITS (person);

因此,可以在表之間定義繼承。


查看完整回答
反對(duì) 回復(fù) 2019-05-29
  • 4 回答
  • 0 關(guān)注
  • 1122 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)