是否有一种模式可以处理一个或多个表中的一组预定义行,这些表也可以在其中插入用户定义的行?
我可能想要使用一个名为 Colors 的表来分发应用程序,我在其中定义了一些颜色,例如,在应用程序的 GUI 中使用的颜色。我可能将一列用于数字主键,一列用于名称,另外三列用于 R、G、B 值。我会在名称列上放置一个唯一约束,并在 R、G、B 三个列上放置一个约束。该表的内容旨在供用户使用,以便当他需要指定一种颜色时,他可以从该表中选择一种。然而,允许用户将自己的颜色添加到表格中是有意义的。
但是,如果用户想要:
- 定义一种颜色,其 R、G、B 值已在预定义颜色中使用
- 使用已被预定义颜色使用的名称
- 隐藏他不感兴趣的预定义颜色
我需要有一些应用程序可以依赖的预定义的只读行,但与此同时我不想向用户强加任何东西,同时为他提供使用某些预定义行的机会(如果他选择的话)至。
我想到了单独的表或带有额外列的单个表,这些列指定行是否预定义、是否被用户隐藏等等。但是我可以看到这两种方法的缺陷。
思考,而不是答案。
我找不到理由禁止用户为某种颜色创建自己的颜色名称。所以 (R,G,B) 不能是唯一的。
我找不到理由禁止用户为某些颜色名称创建自己的颜色。所以 (color_name) 不能是唯一的。
如我所见,存在附加字段
user
,允许每个用户创建自己的颜色集合。user
字段可为空,空值表示这是所有用户都可用的颜色(例如预定义颜色)。但:意味着必须有另一种方法 - 在创建用户时,您必须亲自将所有预定义的颜色复制给他。要将任何颜色标记为当前用户不感兴趣,您可以添加其他字段或使用任何其他方法(例如,添加一些字符 - 星号或减号等 - 在不允许作为活动的第一个字符的颜色名称前面颜色名称)。
或者,您可以创建一个包含基色的表格和一个包含每个用户个人颜色别名的表格。某些用户创建的每种新颜色都插入到两个表中,而任何现有颜色仅插入到第二个表中。