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

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

用戶可以添加/刪除列的情況

用戶可以添加/刪除列的情況

慕桂英3389331 2021-12-22 15:34:37
情況概覽當(dāng)前的問題是關(guān)于軟件用戶,即客戶,想要對材料進(jìn)行評估的情況。該評估可以使用 1 個(gè)或多個(gè)標(biāo)準(zhǔn)來完成,用戶可以在軟件的主管區(qū)域添加和刪除這些標(biāo)準(zhǔn)。請注意,評估必須保存在數(shù)據(jù)庫中以備將來查閱。額外信息:該軟件是用 Java 編碼的??陀^的假設(shè)三個(gè)表。表Material,表Evaluation和表Criteria。請注意,PKidMaterial是 中的 FK Evaluation。下圖說明了這些表格:這三個(gè)表是對真實(shí)表的簡化。Criteria 表命名了標(biāo)準(zhǔn)變量,并為評估中計(jì)算出的最終分?jǐn)?shù)設(shè)置其權(quán)重。在這種情況下,目標(biāo)是用戶能夠添加和刪除標(biāo)準(zhǔn)。定義好標(biāo)準(zhǔn)后,他就可以對材料進(jìn)行評估。并使用這些標(biāo)準(zhǔn)來保存對數(shù)據(jù)庫的評估。換句話說,我需要存儲給每個(gè)用戶定義的標(biāo)準(zhǔn)的分?jǐn)?shù)。問題從技術(shù)角度來看,我們注意到:該軟件必須允許用戶刪除和添加列。這有點(diǎn)棘手,因?yàn)槿绻麆h除 2 列并添加 1,則代碼必須找到他刪除的列并僅刪除它們,然后只添加一列。這個(gè)例子很棘手,因?yàn)槿绻覀兛梢詣h除所有列并只添加他維護(hù)/添加的列,那么在代碼中會更容易。弄亂表格列對于表格的完整性似乎是危險(xiǎn)的。特別是在未知連接(?)的情況下。我正在尋找更好更安全的解決方案。任何意見是極大的贊賞。我希望我盡可能清楚地說明了這個(gè)問題。約束除了我使用 Java 和 MySQL 之外,解決方案沒有任何限制。如果需要,我可以創(chuàng)建更多表,并且我可以允許用戶添加/刪除列。
查看完整描述

3 回答

?
拉莫斯之舞

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

但是之后如何創(chuàng)建評估?由于在您的解決方案中,每個(gè)標(biāo)準(zhǔn)都是一行……請舉例說明好嗎?


在我們的一個(gè)系統(tǒng)中,我們有一些相同的東西,用戶可以在其中定義 0 到無限的標(biāo)準(zhǔn)。


因此,您需要使用行。


詳細(xì)地說,用戶可以附加一個(gè)或多個(gè)filters(它們是or'd),其中每個(gè)過濾器可以包含一個(gè)或多個(gè)criterias(它們是and'd)


從代碼端評估看起來像這樣。(這不是復(fù)制/粘貼代碼,但可能會給您一個(gè)想法)。environmentVariables基本上是一個(gè)包含我們嘗試應(yīng)用過濾器的對象屬性的地圖:


public static boolean evaluate(Filter filter, Map<String, Object> environmentVariables) {

    for (Criteria criteria : filter.getCriterias()) {

        if (!evaluateCriteria(criteria, environmentVariables)) {

            // one missmatch -> false.

            return false;

        }

    }


    // all criterias matched, that filter is true.

    return true;

}


public static boolean evaluateCriteria(Criteria criteria, Map<String, Object> environmentVariables) {

    if (environmentVariables != null) {

        if (environmentVariables.containsKey(criteria.getKey())) {

            return evaluateCriteria(criteria, environmentVariables.get(criteria.getKey()));

        }

    }

    return false;

}


private static boolean evaluateCriteria(Criteria criteria, Object value) {

    switch (criteria.getOperator()) {

        case LIKE:

            if (value != null) {

                return value.toString().toLowerCase().contains(criteria.getValue().toString().toLowerCase());

            } else {

                return false;

            }

        //other OperatorTypes

        case STARTSWITH: // code...

        case ENDSWITH: // code...

        case EQUALS: // code...

        case GREATER_THAN: // code...

        case GREATER_THAN_EQUAL: // code...

        case LESSER_THAN: // code...

        case LESSER_THAN_EQUAL: // code...

        default:

          throw new UnsupportedOperationException(criteria.getOperator() + " is not defined");


    }

}


查看完整回答
反對 回復(fù) 2021-12-22
?
慕娘9325324

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

然后根據(jù)您的評論,您應(yīng)該只為標(biāo)準(zhǔn)創(chuàng)建一個(gè)表,用戶在其中添加一行來指定評估標(biāo)準(zhǔn)是什么。這將更安全地添加和刪除,因?yàn)槟粫膶?shí)際的表屬性,而是操作條目

編輯

要使用它,只需使用一個(gè)INSERT INTO語句,在其中將值插入到列中。


查看完整回答
反對 回復(fù) 2021-12-22
?
倚天杖

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

添加具有兩個(gè)外來特征作為主鍵的額外表格標(biāo)準(zhǔn)......正如我所說的最后一個(gè)存在兩種解決方案,這個(gè)你已經(jīng)畫了


查看完整回答
反對 回復(fù) 2021-12-22
  • 3 回答
  • 0 關(guān)注
  • 171 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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