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

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

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

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

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

3 回答

?
拉莫斯之舞

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

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


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


因此,您需要使用行。


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


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


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");


    }

}


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

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

然后根據(jù)您的評論,您應該只為標準創(chuàng)建一個表,用戶在其中添加一行來指定評估標準是什么。這將更安全地添加和刪除,因為您不會更改實際的表屬性,而是操作條目

編輯

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


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

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

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


查看完整回答
反對 回復 2021-12-22
  • 3 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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