【问题标题】:Database modelling string as enumeration or action as boolean values?数据库建模字符串作为枚举或操作作为布尔值?
【发布时间】:2016-01-03 18:01:18
【问题描述】:

在数据库中为某些用户操作建模的最佳方法是什么?假设您可以进行一组可扩展的操作,例如:登录、注销、配置文件更新和停用 等等......

将动作作为字符串存储在一个列中的第一种方法....

CREATE TABLE user_actions
(
  id bigserial NOT NULL,
  user_id integer,
  created_on timestamp with time zone NOT NULL,
  action character varying(20) NOT NULL,
)

或为每个操作创建一个布尔列,添加新操作时更多,但可能更快更容易搜索...

CREATE TABLE user_actions
(
  id bigserial NOT NULL,
  user_id integer,
  created_on timestamp with time zone NOT NULL,
  login boolean NOT NULL,
  logout boolean NOT NULL,
  profile_update boolean NOT NULL,
  profile_deactivated boolean NOT NULL,
)

希望得到您的反馈和建议

【问题讨论】:

    标签: database database-design architecture data-modeling


    【解决方案1】:

    我会把这两个分开。创建另一个名为“AVAILABLE_ACTIONS”的表,其中包含一个整数键,您可以将其用作 USER_ACTIONS 表的外键。这可以为您提供更好的性能,而不必在每次出现新操作时都发出 DDL。

    【讨论】:

      猜你喜欢
      • 2011-03-27
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多