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_pkeyPRIMARY KEY, btree (id)
外部キー制約:
-
grantor_id→users(id) -
grantee_id→users(id)
alembic_version
説明: マイグレーションのバージョン管理テーブル。
カラム:
-
version_num(character varying(32), NOT NULL)
インデックス:
-
alembic_version_pkcPRIMARY 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_pkeyPRIMARY KEY, btree (id) -
alert_subscriptions_destination_id_alert_idUNIQUE, 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_pkeyPRIMARY 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_pkeyPRIMARY KEY, btree (id) -
api_keys_object_type_object_idbtree (object_type,object_id) -
ix_api_keys_api_keybtree (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_pkeyPRIMARY 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_pkeyPRIMARY KEY, btree (id) -
ix_dashboards_is_archivedbtree (is_archived) -
ix_dashboards_is_draftbtree (is_draft) -
ix_dashboards_slugbtree (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_pkeyPRIMARY 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_pkeyPRIMARY KEY, btree (id) -
data_sources_org_id_namebtree (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_pkeyPRIMARY 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_pkeyPRIMARY KEY, btree (id) -
unique_favoriteUNIQUE 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_pkeyPRIMARY 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_pkeyPRIMARY KEY, btree (id) -
notification_destinations_org_id_nameUNIQUE, 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_pkeyPRIMARY KEY, btree (id) -
organizations_slug_keyUNIQUE 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_pkeyPRIMARY KEY, btree (id) -
ix_queries_is_archivedbtree (is_archived) -
ix_queries_is_draftbtree (is_draft) -
ix_queries_search_vectorgin (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_pkeyPRIMARY KEY, btree (id) -
ix_query_results_query_hashbtree (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_pkeyPRIMARY KEY, btree (id) -
query_snippets_trigger_keyUNIQUE 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_pkeyPRIMARY KEY, btree (id) -
users_api_key_keyUNIQUE CONSTRAINT, btree (api_key) -
users_org_id_emailUNIQUE, 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_pkeyPRIMARY 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_pkeyPRIMARY KEY, btree (id) -
ix_widgets_dashboard_idbtree (dashboard_id)
外部キー制約:
-
dashboard_id→dashboards(id) -
visualization_id→visualizations(id)