布尔字段与单独的表


Boolean field vs separate table

>我有一个关键字表,我将在其中存储可能与事件(活动(相关的所有可能的关键字。

我想允许组织者输入自定义关键字,这些关键字将上传到我的数据库进行审核。
在现有表上创建一个布尔字段(fieldname=active(还是为自定义关键字创建一个单独的表是一个更好的主意?

一个重要的注意事项是,我将创建一个工具,允许版主定期从表中提取非活动关键字列表。

逻辑告诉我,它们都属于一个通用的"关键字"表,但从性能上讲,创建一个单独的表似乎更好。

你有什么想法?

根据戈登·利诺夫的回答进行编辑

首先,关键字不是特定于组织者的,尽管它们的ID也会被存储(就像您提到的时间一样(。
客户关键字永远不能覆盖内置关键字,因为只有当版主(我们(认为它很好时,才会允许它。

注意:在审核时,还将有一个更复杂的关键字管理,我们将考虑父母 - 子元素。目的是创建一个搜索引擎,组织者可以在其中添加关键字,用户可以根据这些关键字(或其父关键字(访问活动。

关键字不是特定于组织者,而是特定于活动。但这将使用多对多关系(联结表(进行管理,因此这不是问题。

这太长了,无法发表评论。

您的问题没有提供足够的信息来回答这个问题。 例如,自定义关键字是否特定于给定的组织者? 如果是这样,仅仅有一个布尔的"isactive"标志是不够的。 客户关键字可以以任何方式覆盖内置关键字吗?

我怀疑"自定义"关键字具有不是内置关键字自然组成部分的字段,例如:

  • 谁创造了它?
  • 它是什么时候创建的?

也许还有其他一些信息,例如谁可以访问它。

性能只能根据用于访问数据的查询来判断。 但是,我怀疑将关键字放在一个表中会对性能产生重大影响。