Rdbms

預定義的行與使用者輸入的行沖突

  • November 14, 2018

是否有一種模式可以處理一個或多個表中的一組預定義行,這些表中也可以插入使用者定義的行?

我可能希望使用名為 Colors 的表分發應用程序,其中我定義了一些顏色,例如,在應用程序的 GUI 中使用的顏色。我可能會使用一列作為數字主鍵,一列作為名稱,另外三列作為 R、G、B 值。我會在 name 列上設置一個唯一約束,對三個 R、G、B 列設置一個。此表的內容旨在供使用者使用,以便當他需要指定顏色時,他可以從表中選擇一種顏色。然而,允許使用者將自己的顏色添加到表格中是有意義的。

但是,如果使用者想要:

  • 定義一種顏色,其 R、G、B 值已在預定義顏色中使用
  • 使用已被預定義顏色使用的名稱
  • 隱藏他不感興趣的預定義顏色

我需要一些預定義的只讀行,應用程序可以依賴這些行,但同時我不想對使用者強加任何東西,同時為他提供使用某些預定義行的機會(如果他選擇)到。

我想到了單獨的表或帶有額外列的單個表,這些列指定該行是否是預定義的,是否被使用者隱藏等等。但是,我可以看到這兩種方法的缺陷。

反思,不是答案。



定義一種顏色,其 R、G、B 值已在預定義顏色中使用

我找不到禁止使用者為某些顏色創建自己的顏色名稱的理由。所以 (R,G,B) 不能是唯一的。

使用已被預定義顏色使用的名稱

我找不到禁止使用者為某些顏色名稱創建自己的顏色的理由。所以 (color_name) 不能是唯一的。


正如我所見,存在額外的欄位user,它允許每個使用者創建自己的顏色集合。user欄位可以為空,Null 值表示這是一種可供所有使用者使用的顏色(例如,預定義的顏色)。但:

隱藏他不感興趣的預定義顏色

意味著必須有另一種方法 - 在創建使用者時,您必須親自將所有預定義的顏色複製給他。要將任何顏色標記為目前使用者不感興趣,您可以添加其他欄位或使用任何其他方法(例如,添加一些字元 - 星號或減號等 - 在顏色名稱前面,不允許作為活動的第一個字元顏色名稱)。

或者,您可以為每個使用者創建一個帶有基本顏色的表格和一個帶有個人顏色別名的表格。某些使用者創建的每種新顏色都插入兩個表中,而任何現有顏色僅插入第二個表中。

引用自:https://dba.stackexchange.com/questions/222513