ER図
データベーステーブルの概要
テーブル一覧
- access_permissions: アクセス権の管理テーブル。オブジェクトタイプ、オブジェクトID、アクセス権種別、付与者ID、受取者IDなどを管理。
- alembic_version: マイグレーションのバージョン管理テーブル。
- alert_subscriptions: アラートの購読情報を管理。アラートID、ユーザーID、通知先IDなど。
- alerts: アラートの設定を管理。アラート名、クエリID、ユーザーID、状態、リトリガー設定など。
- api_keys: APIキーの管理。オブジェクトタイプ、オブジェクトID、APIキー、組織IDなど。
- changes: 変更履歴を管理。変更内容、ユーザーID、オブジェクトタイプ、オブジェクトIDなど。
- dashboards: ダッシュボードの情報を管理。名前、スラッグ、バージョン、フィルター機能の有無、アーカイブフラグなど。
- data_source_groups: データソースとグループの関連付けを管理。データソースID、グループID、閲覧専用かどうかを記録。
- data_sources: データソースの設定を管理。名前、タイプ、オプション、作成日など。
- events: イベントのログ。アクション、オブジェクトタイプ、ユーザーID、作成日など。
- favorites: お気に入り機能の管理。オブジェクトタイプ、オブジェクトID、ユーザーIDなど。
- groups: グループの情報を管理。名前、タイプ、権限など。
- notification_destinations: 通知先の情報を管理。名前、タイプ、オプションなど。
- organizations: 組織の情報を管理。名前、スラッグ、設定など。
- queries: クエリの情報を管理。名前、説明、クエリ内容、APIキー、スケジュールなど。
- query_results: クエリの実行結果を保存。データ、実行時間、取得日時など。
- query_snippets: クエリのスニペット(共通コード)。トリガー、スニペット内容など。
- users: ユーザー情報を管理。名前、メールアドレス、グループ、APIキーなど。
- visualizations: 可視化(グラフなど)の設定を管理。名前、タイプ、オプションなど。
- widgets: ウィジェット(ダッシュボード上のコンポーネント)。ダッシュボードID、幅、オプションなど。
各テーブルには、主キーや外部キーが設定され、データの一貫性が保たれています。また、特定の条件でユニークなインデックスが作られています。
テーブル詳細
access_permissions
説明: アクセス権の管理テーブル。
カラム:
-
object_type
(character varying(255), NOT NULL) -
object_id
(integer, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('access_permissions_id_seq'::regclass)
) -
access_type
(character varying(255), NOT NULL) -
grantor_id
(integer, NOT NULL) -
grantee_id
(integer, NOT NULL)
インデックス:
-
access_permissions_pkey
PRIMARY KEY, btree (id
)
外部キー制約:
-
grantor_id
→users(id)
-
grantee_id
→users(id)
alembic_version
説明: マイグレーションのバージョン管理テーブル。
カラム:
-
version_num
(character varying(32), NOT NULL)
インデックス:
-
alembic_version_pkc
PRIMARY KEY, btree (version_num
)
alert_subscriptions
説明: アラートの購読情報を管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('alert_subscriptions_id_seq'::regclass)
) -
user_id
(integer, NOT NULL) -
destination_id
(integer) -
alert_id
(integer, NOT NULL)
インデックス:
-
alert_subscriptions_pkey
PRIMARY KEY, btree (id
) -
alert_subscriptions_destination_id_alert_id
UNIQUE, btree (destination_id
,alert_id
)
外部キー制約:
-
alert_id
→alerts(id)
-
destination_id
→notification_destinations(id)
-
user_id
→users(id)
alerts
説明: アラートの設定を管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('alerts_id_seq'::regclass)
) -
name
(character varying(255), NOT NULL) -
query_id
(integer, NOT NULL) -
user_id
(integer, NOT NULL) -
options
(text, NOT NULL) -
state
(character varying(255), NOT NULL) -
last_triggered_at
(timestamp with time zone) -
rearm
(integer)
インデックス:
-
alerts_pkey
PRIMARY KEY, btree (id
)
外部キー制約:
-
query_id
→queries(id)
-
user_id
→users(id)
api_keys
説明: APIキーの管理。
カラム:
-
object_type
(character varying(255), NOT NULL) -
object_id
(integer, NOT NULL) -
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('api_keys_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
api_key
(character varying(255), NOT NULL) -
active
(boolean, NOT NULL) -
created_by_id
(integer)
インデックス:
-
api_keys_pkey
PRIMARY KEY, btree (id
) -
api_keys_object_type_object_id
btree (object_type
,object_id
) -
ix_api_keys_api_key
btree (api_key
)
外部キー制約:
-
created_by_id
→users(id)
-
org_id
→organizations(id)
changes
説明: 変更履歴を管理。
カラム:
-
object_type
(character varying(255), NOT NULL) -
object_id
(integer, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('changes_id_seq'::regclass)
) -
object_version
(integer, NOT NULL) -
user_id
(integer, NOT NULL) -
change
(text, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL)
インデックス:
-
changes_pkey
PRIMARY KEY, btree (id
)
外部キー制約:
-
user_id
→users(id)
dashboards
説明: ダッシュボードの情報を管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('dashboards_id_seq'::regclass)
) -
version
(integer, NOT NULL) -
org_id
(integer, NOT NULL) -
slug
(character varying(140), NOT NULL) -
name
(character varying(100), NOT NULL) -
user_id
(integer, NOT NULL) -
layout
(text, NOT NULL) -
dashboard_filters_enabled
(boolean, NOT NULL) -
is_archived
(boolean, NOT NULL) -
is_draft
(boolean, NOT NULL) -
tags
(character varying[])
インデックス:
-
dashboards_pkey
PRIMARY KEY, btree (id
) -
ix_dashboards_is_archived
btree (is_archived
) -
ix_dashboards_is_draft
btree (is_draft
) -
ix_dashboards_slug
btree (slug
)
外部キー制約:
-
org_id
→organizations(id)
-
user_id
→users(id)
data_source_groups
説明: データソースとグループの関連付けを管理。
カラム:
-
id
(integer, NOT NULL, デフォルト:nextval('data_source_groups_id_seq'::regclass)
) -
data_source_id
(integer, NOT NULL) -
group_id
(integer, NOT NULL) -
view_only
(boolean, NOT NULL)
インデックス:
-
data_source_groups_pkey
PRIMARY KEY, btree (id
)
外部キー制約:
-
data_source_id
→data_sources(id)
-
group_id
→groups(id)
data_sources
説明: データソースの設定を管理。
カラム:
-
id
(integer, NOT NULL, デフォルト:nextval('data_sources_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
name
(character varying(255), NOT NULL) -
type
(character varying(255), NOT NULL) -
encrypted_options
(bytea, NOT NULL) -
queue_name
(character varying(255), NOT NULL) -
scheduled_queue_name
(character varying(255), NOT NULL) -
created_at
(timestamp with time zone, NOT NULL)
インデックス:
-
data_sources_pkey
PRIMARY KEY, btree (id
) -
data_sources_org_id_name
btree (org_id
,name
)
外部キー制約:
-
org_id
→organizations(id)
events
説明: イベントのログを管理。
カラム:
-
id
(integer, NOT NULL, デフォルト:nextval('events_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
user_id
(integer) -
action
(character varying(255), NOT NULL)(login、load_favorites、view、list、create、test、edit、view_source、execute_query、execute、update、edit_name、toggle_published) -
object_type
(character varying(255), NOT NULL) (redash、query、dashboard、page、datasource、query_snippet、data_source、visualization、widget、group、user、settings) -
object_id
(character varying(255)) -
additional_properties
(text) -
created_at
(timestamp with time zone, NOT NULL)
インデックス:
-
events_pkey
PRIMARY KEY, btree (id
)
外部キー制約:
-
org_id
→organizations(id)
-
user_id
→users(id)
favorites
説明: お気に入り機能の管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('favorites_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
object_type
(character varying(255), NOT NULL) -
object_id
(integer, NOT NULL) -
user_id
(integer, NOT NULL)
インデックス:
-
favorites_pkey
PRIMARY KEY, btree (id
) -
unique_favorite
UNIQUE CONSTRAINT, btree (object_type
,object_id
,user_id
)
外部キー制約:
-
org_id
→organizations(id)
-
user_id
→users(id)
groups
説明: グループの情報を管理。
カラム:
-
id
(integer, NOT NULL, デフォルト:nextval('groups_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
type
(character varying(255), NOT NULL) -
name
(character varying(100), NOT NULL) -
permissions
(character varying(255)[], NOT NULL) -
created_at
(timestamp with time zone, NOT NULL)
インデックス:
-
groups_pkey
PRIMARY KEY, btree (id
)
外部キー制約:
-
org_id
→organizations(id)
notification_destinations
説明: 通知先の情報を管理。
カラム:
-
id
(integer, NOT NULL, デフォルト:nextval('notification_destinations_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
user_id
(integer, NOT NULL) -
name
(character varying(255), NOT NULL) -
type
(character varying(255), NOT NULL) -
options
(text, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL)
インデックス:
-
notification_destinations_pkey
PRIMARY KEY, btree (id
) -
notification_destinations_org_id_name
UNIQUE, btree (org_id
,name
)
外部キー制約:
-
org_id
→organizations(id)
-
user_id
→users(id)
organizations
説明: 組織の情報を管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('organizations_id_seq'::regclass)
) -
name
(character varying(255), NOT NULL) -
slug
(character varying(255), NOT NULL) -
settings
(text, NOT NULL)
インデックス:
-
organizations_pkey
PRIMARY KEY, btree (id
) -
organizations_slug_key
UNIQUE CONSTRAINT, btree (slug
)
queries
説明: クエリの情報を管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('queries_id_seq'::regclass)
) -
version
(integer, NOT NULL) -
org_id
(integer, NOT NULL) -
data_source_id
(integer) -
latest_query_data_id
(integer) -
name
(character varying(255), NOT NULL) -
description
(character varying(4096)) -
query
(text, NOT NULL) -
query_hash
(character varying(32), NOT NULL) -
api_key
(character varying(40), NOT NULL) -
user_id
(integer, NOT NULL) -
last_modified_by_id
(integer) -
is_archived
(boolean, NOT NULL) -
is_draft
(boolean, NOT NULL) -
schedule
(text) -
schedule_failures
(integer, NOT NULL) -
options
(text, NOT NULL) -
search_vector
(tsvector) -
tags
(character varying[])
インデックス:
-
queries_pkey
PRIMARY KEY, btree (id
) -
ix_queries_is_archived
btree (is_archived
) -
ix_queries_is_draft
btree (is_draft
) -
ix_queries_search_vector
gin (search_vector
)
外部キー制約:
-
data_source_id
→data_sources(id)
-
latest_query_data_id
→query_results(id)
-
org_id
→organizations(id)
-
user_id
→users(id)
-
last_modified_by_id
→users(id)
query_results
説明: クエリの実行結果を保存。
カラム:
-
id
(integer, NOT NULL, デフォルト:nextval('query_results_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
data_source_id
(integer, NOT NULL) -
query_hash
(character varying(32), NOT NULL) -
query
(text, NOT NULL) -
data
(text, NOT NULL) -
runtime
(double precision, NOT NULL) -
retrieved_at
(timestamp with time zone, NOT NULL)
インデックス:
-
query_results_pkey
PRIMARY KEY, btree (id
) -
ix_query_results_query_hash
btree (query_hash
)
外部キー制約:
-
data_source_id
→data_sources(id)
-
org_id
→organizations(id)
query_snippets
説明: クエリのスニペット(共通コード)。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('query_snippets_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
trigger
(character varying(255), NOT NULL) -
description
(text, NOT NULL) -
user_id
(integer, NOT NULL) -
snippet
(text, NOT NULL)
インデックス:
-
query_snippets_pkey
PRIMARY KEY, btree (id
) -
query_snippets_trigger_key
UNIQUE CONSTRAINT, btree (trigger
)
外部キー制約:
-
org_id
→organizations(id)
-
user_id
→users(id)
users
説明: ユーザー情報を管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('users_id_seq'::regclass)
) -
org_id
(integer, NOT NULL) -
name
(character varying(320), NOT NULL) -
email
(character varying(255), NOT NULL) -
profile_image_url
(character varying(320)) -
password_hash
(character varying(128)) -
groups
(integer[]) -
api_key
(character varying(40), NOT NULL) -
disabled_at
(timestamp with time zone) -
details
(json, デフォルト:'{}'::json
)
インデックス:
-
users_pkey
PRIMARY KEY, btree (id
) -
users_api_key_key
UNIQUE CONSTRAINT, btree (api_key
) -
users_org_id_email
UNIQUE, btree (org_id
,email
)
外部キー制約:
-
org_id
→organizations(id)
visualizations
説明: 可視化(グラフなど)の設定を管理。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('visualizations_id_seq'::regclass)
) -
type
(character varying(100), NOT NULL) -
query_id
(integer, NOT NULL) -
name
(character varying(255), NOT NULL) -
description
(character varying(4096)) -
options
(text, NOT NULL)
インデックス:
-
visualizations_pkey
PRIMARY KEY, btree (id
)
外部キー制約:
-
query_id
→queries(id)
widgets
説明: ウィジェット(ダッシュボード上のコンポーネント)。
カラム:
-
updated_at
(timestamp with time zone, NOT NULL) -
created_at
(timestamp with time zone, NOT NULL) -
id
(integer, NOT NULL, デフォルト:nextval('widgets_id_seq'::regclass)
) -
visualization_id
(integer) -
text
(text) -
width
(integer, NOT NULL) -
options
(text, NOT NULL) -
dashboard_id
(integer, NOT NULL)
インデックス:
-
widgets_pkey
PRIMARY KEY, btree (id
) -
ix_widgets_dashboard_id
btree (dashboard_id
)
外部キー制約:
-
dashboard_id
→dashboards(id)
-
visualization_id
→visualizations(id)