【问题标题】:Homegraph concept database schema permissionsHomegraph 概念数据库架构权限
【发布时间】:2021-06-30 21:16:01
【问题描述】:

我正在尝试基于 Homegraph 概念为我的 PostgreSQL 数据库创建架构,但是我不确定当前架构的正确性以及用户是否应该具有每个结构或每个设备的访问权限。 我找不到任何 Homegraph 概念实现的真实示例,而且 Google 似乎没有提供此类信息。

CREATE EXTENSION hstore;

CREATE TABLE users (
  id            CHAR(32)        NOT NULL,
  username      TEXT            NOT NULL,
  email         TEXT     UNIQUE NOT NULL,
  password_hash TEXT            NOT NULL,

  PRIMARY KEY (
    id
  )
);

CREATE TABLE user_structures (
  structure_id  CHAR(32) REFERENCES structures (id) ON DELETE CASCADE,
  user_id       CHAR(32) REFERENCES users      (id) ON DELETE CASCADE,
  manager       BOOL     NOT NULL,

  PRIMARY KEY (
    structure_id,
    user_id,
  )
);


CREATE TABLE structures (
  id          CHAR(32)  UNIQUE NOT NULL,
  label       TEXT      NOT NULL,

  PRIMARY KEY (
    id
  )
);


CREATE TABLE rooms (
  id           CHAR(32) UNIQUE NOT NULL,
  structure_id CHAR(32) REFERENCES structures (id) ON DELETE CASCADE,
  label        TEXT     NOT NULL,

  PRIMARY KEY (
    room_id
  )
);

CREATE TABLE devices (
  id              CHAR(32)    UNIQUE NOT NULL,
  room_id         CHAR(32)    REFERENCES room (id) ON DELETE CASCADE,
  password_hash   TEXT        NOT NULL,
  type            TEXT        NOT NULL,
  traits          TEXT[]      NOT NULL,
  name            TEXT        NOT NULL,
  will_push_state BOOL        NOT NULL,
  model           TEXT        NOT NULL,
  hw_version      TEXT        NOT NULL,
  sw_version      TEXT        NOT NULL,
  attributes      hstore      NOT NULL,

  PRIMARY KEY (
    id,
    structure_id
  )
);

【问题讨论】:

    标签: postgresql actions-on-google google-home


    【解决方案1】:

    关于devices 表,有一个规范的protobuf 定义了每个字段及其类型。

    除此之外,HomeGraph 架构的实现是 Google 智能家居平台的内部定义,从开发人员的角度来看,它的结构应该无关紧要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2015-07-06
      • 1970-01-01
      • 2010-10-04
      • 2015-03-08
      • 2015-05-07
      • 2018-10-05
      相关资源
      最近更新 更多