テーブルとフィールド
basedbの各テーブルはPostgreSQLのテーブルであり、各フィールドは型付きの列です。入力したラベル(「Échéance」)は、安定したスラッグ化によって読みやすい物理名(echeance)になります。アクセント記号を除き、小文字にし、予約語を避けます。
フィールドの型
Section titled “フィールドの型”| 型 | PostgreSQLの列 | 備考 |
|---|---|---|
| 短文テキスト | text | 1行 |
| 長文テキスト | text | Markdown:グリッドには抜粋、ホバーでレンダリング表示、専用エディター。列を引用できます |
| リッチテキスト | text + CHECK | 書き込み時にサニタイズされるHTML。ビジュアルエディターで編集します(後述) |
| 数値 | numeric | 浮動小数点は使いません。金額に誤差が生じません |
| 通貨、パーセント、期間、評価 | numeric | 数値とその表示形式:12,50 €、15 %、1:30、★★★★☆ |
| チェックボックス | boolean | |
| 日付 | date | |
| 日時 | timestamptz | 絶対的な時点。閲覧者のタイムゾーンで表示されます |
| 単一選択 | text + CHECK | 選択肢ごとに色、アイコン、画像を設定できます |
| 複数選択 | text[] + CHECK | 配列演算子でフィルターできます |
| メール | text + CHECK | データベースが検証するアドレス。クリックで開けます |
| 電話番号、バーコード、住所 | text | 短文テキストとその形式:発信リンク、等幅フォント、地図へのリンク |
| URL | text + CHECK | 入力時に補完されます(exemple.fr → https://exemple.fr) |
| メンバー | uuid | ワークスペースのメンバー。指定するとその人に通知されます |
| 自動採番 | bigint IDENTITY列 | 既存の行にも番号を振ります。誰も入力しません |
| リレーション | uuid + FOREIGN KEY | 対象テーブルへの本物の外部キー |
| 複数リレーション | uuid[] | 複数のリンク先の行。整合性はトリガーで保たれます |
| 数式 | 生成列STORED | PostgreSQLが計算します(または読み取り時に計算。数式を参照) |
| ルックアップ、ロールアップ、カウント | なし | 読み取り時に、リレーションをたどって計算されます |
| ボタン | なし | アドレスを開くか、オートメーションを実行します |
| ファイル、画像 | jsonb(メタデータ) | バイト列はファイルストレージに保存されます |
各テーブルにはシステム列もあります:_id(UUID v7)、_created_at、_updated_at、_created_by、_updated_by。トリガーで管理され、APIから書き込むことはできません。グリッドでは、列メニューのシステム情報にまとめられています。すべてのテーブルにありますが、役立つ場面は多くありません。

データベースが保証する制約
Section titled “データベースが保証する制約”インターフェースが約束することを、PostgreSQLが保証します。単一選択はCHECK制約、リレーションはFOREIGN KEY、URLやメールアドレスは正規表現です。これらに違反する直接SQLでの書き込みは、インターフェースと同じように拒否されます:
Check constraints: "ck_opportunites__statut__enum" CHECK (statut = ANY (ARRAY['nouveau', 'qualifie', …]))Foreign-key constraints: "fk_opportunites__clients_id" FOREIGN KEY (clients_id) REFERENCES b_t4z56fq_ventes.clients(_id)通貨、パーセント、期間、評価、電話番号、バーコード、住所は型と同じように選べますが、実際には形式です。列は数値またはテキストのままで、表示だけが変わります。
| 形式 | 対象 | 表示と入力 |
|---|---|---|
| 通貨 | 数値 | 12 500,00 € — ユーロ、ドル、ポンド、スイスフラン、カナダドル、円 |
| パーセント | 数値 | 15 % |
| 期間 | 秒数 | 1:30。1h30、90 minとも入力できます |
| 評価 | 数値 | 1〜10個の星。クリックで設定します |
| 電話番号 | 短文テキスト | 発信リンク |
| バーコード | 短文テキスト | 等幅フォント |
| 住所 | 短文テキスト | 地図へのリンク。行の詳細では、住所を検索が該当する住所を全文表示で提案します。地図ビューがその位置を示します |
形式はあとから(フィールドの編集画面の表示で)変更でき、保存済みの値には影響しません。形式は値を制限しません。5段階の評価に7を入れても、7のままです。
フィールドの編集画面で、既定値は、指定なしで作成された行が受け取る値を決めます:
| 選択 | 対象 | 作成された行が受け取るもの |
|---|---|---|
| 固定値 | ほとんどの型 | 選んだ値——ステータス「Nouveau」、優先度3など |
| 今日の日付 | 日付 | 作成日、本人のタイムゾーンで |
| 作成時 | 日付と時刻 | 正確な時刻 |
| 行を作成する人 | 人物 | 作成した人——「担当者:自分」 |
新規の行の詳細やフォームは、あらかじめ入力された状態で開きます。フィールドを空にすれば空のままです。既定値は、あらゆる作成——インターフェース、API、MCP、インポート、共有フォーム、オートメーション——に適用され、その人が変更できないフィールドにも適用されます:これはテーブルの規則だからです。既存の行は変わらず、直接SQLでの挿入には既定値は適用されません:basedbが適用するのであり、列自体が適用するわけではありません。
数式は英語で書きます(フランス語の関数名も使えます)。フィールドは角かっこで囲み、引数は,で区切ります:
ROUND([Montant HT] * (1 + [Taux de TVA]), 2)IF([Payée], FALSE, DAYS(TODAY(), [Échéance]) > 0)DAYS([Fin], [Début])エディターには、挿入できるフィールドと関数のパネルが表示されます。エラーが起きると、原因となったフィールドや文字が示されます。
| 分類 | 関数 |
|---|---|
| 論理 | IF、IFBLANK、ISBLANK、AND、OR、NOT、TRUE、FALSE |
| 数値 | ROUND、ABS、CEILING、FLOOR、MIN、MAX |
| テキスト | UPPER、LOWER、TRIM、LEFT、RIGHT、LEN、TEXT、VALUE |
| 日付 | YEAR、MONTH、DAY、WEEKDAY、DAYS、ADD_DAYS、DATE、TODAY、NOW |
| 演算子 | + - * /、テキストの連結には&、= <> < <= > >= |
数式はPostgreSQLの生成列になります。psqlや各種ツールからも、ほかの列と同じように読めます。日付に依存する数式(TODAY()、NOW())や、ルックアップ・ロールアップを参照する数式は読み取り時に計算されます。basedb内ではフィルターや並べ替えに使えますが、直接SQLからは存在しません。
数式から別の数式やリレーションを直接参照することはできません。それにはルックアップを使います。テキストの一部の抽出や置換には、今後対応する予定です。
ルックアップ、ロールアップ、カウント
Section titled “ルックアップ、ロールアップ、カウント”次の3つのフィールドは、リレーションをたどって、どちらの方向にも値を読み取ります。「プロジェクトの顧客」だけでなく、「『Projet』でリンクされたタスク」も対象です:
- ルックアップは、リンク先の行の値、またはその値の一覧を取得します。例:プロジェクトの顧客の都市。
- ロールアップは、リンク先の行について計算します:値の数、合計、平均、最小、最大。例:顧客の売上高、その顧客のレビューの平均評価。
- カウントは、リンク先の行を数えます。例:プロジェクトのタスク数。
これらは読み取りのたびに、読む人の権限で計算されます。リンク先のテーブルにアクセスできなければ、このフィールドも見えません。フィルターや並べ替えに使えます。たどれるリレーションは1つだけで、書き込みはできず、列を持たないため直接SQLには存在しません。また、インポート、フォーム、履歴にも含まれません。
リレーション
Section titled “リレーション”リレーションは、ある行を同じデータベース内の別のテーブルの行に結びつけます。グリッドには対象の行の表示値、つまりそのテーブルの表示フィールドとして指定した列の値が表示されます。フィルターはリレーションをたどれます(clients_id.ville eq "Lyon")。ある行を参照している行は、その行の詳細に表示されます。
複数の行をリンクにチェックを入れると、リレーションは複数リレーションになります。1つのタスクが複数のタスクに依存したり、1つの記事が複数のカテゴリーに属したりできます。リンクされた行はバッジで表示され、検索して選び、行の詳細からクリックで開けます。対象の行を削除すると、それを参照していた一覧から外されます。設定によっては、削除自体を拒否することもできます。has_any、has_all、is_nullフィルターが使え、これらもリレーションをたどれます(taches_ids.titre contains "logo")。複数リレーションは、並べ替え、グループ化、インポートにはまだ対応していません。
ボタンフィールドには値がなく、アクションを実行します。アドレスを開く(https://またはmailto:。行の値を引用できます:mailto:{{E-mail}})か、同じテーブルでボタンをトリガーとするオートメーションを実行します。セル、カード、行の詳細に表示されます。
データベース、テーブル、フィールドには説明を付けられ、マイグレーションなしで変更できます。説明は、psqlが読むCOMMENT ON、生成されるドキュメント、そしてエージェントがdescribe_tableで読む内容にコピーされます。
リッチテキストと変数
Section titled “リッチテキストと変数”リッチテキストは長文テキストのHTML版で、フィールドの作成時に選びます(「リッチテキスト (HTML)」)。見出し、太字、斜体、下線、取り消し線、リスト、引用、コード、リンク、区切り線を、ビジュアルエディターで扱えます。HTMLは、インターフェース、API、MCPサーバー、インポートのいずれから来たものでも書き込み時にサニタイズされます。さらにCHECK制約が、SQLで直接書き込まれた危険な形式(<script>、on…属性、javascript:)も拒否します。画像、表、色は使えません。データベースが保持しないものは、最初から提供しません。
長文テキスト(通常でもリッチでも)は、同じ行の列を引用できます。エディターの列メニューで、カーソル位置に引用を挿入します。リッチテキストではバッジとして、Markdownでは{{Ville}}として挿入されます。
配送予定日は
{{Livraison}}、配送先は{{Ville}}です。
- 列には、書かれたとおりの引用が物理名で保存されます(
{{ville}})。これがpsqlで読める内容です。 - それ以外のすべての場所(グリッド、行の詳細、API、MCPサーバー、共有ビュー、オートメーション)では、テキストはその行の値に置き換えて読まれます:「配送予定日は02/10/2026、配送先はLyonです。」都市を変えれば、テキストも変わります。
- 単一選択はラベルで、メンバーは名前で、日付は各自の形式で表示されます。リッチテキストに挿入された値が、マークアップとして解釈されることはありません。
- 読む人が閲覧できない列からは何も表示されません。値も名前も出ません。
リッチテキストをAIで埋めることはできません。モデルが書くのはテキストであり、サニタイズされたHTMLではないからです。
スキーマを変更する
Section titled “スキーマを変更する”データベースのスキーマ画面(サイドバーの ⋯ メニュー内)には、テーブルとそのフィールドが一覧表示されます。追加、名前の変更、必須化、並べ替え、説明の記入、表示フィールドの指定ができます。

構造の変更には管理レベルが必要です。このレベルがない場合、画面は閲覧専用になり、ボタンも鉛筆アイコンもハンドルも表示されません。必須設定と表示フィールドは表示されますが、変更はできません。いずれにしてもサーバーはすべての変更を拒否しますが、画面が受け付けるふりをすることもありません。
フィールドの追加、名前の変更、型の変更はマイグレーションエンジンを通ります。段階的な計画、短時間のロック、そしてデータを変換できない場合には理由を明示した拒否が行われます。
名前の変更は、データベース、テーブル、フィールドのいずれも1つのダイアログで行います。ラベルは常にマイグレーションなしで変わります。管理者には、その下に「データベース上の名前も変更:clients → comptes」が表示されます。チェックを入れると物理名も変わり、影響分析が表示されます。古い名前を参照しているクエリ、SQLビュー、オートメーションの一覧です。古い名前は、クエリを更新するまでの間、互換エイリアス(ビュー)によって引き続き利用できます。
削除しても、すぐには何も消えません。テーブルやデータベースは退避され(zz_supprime_…)、SQLでは引き続き読めます。削除したデータベースは復元できます。テーブル単体をインターフェースから復元する機能は今後対応予定です。完全なパージはシステム管理者だけが実行でき、30日後に、検証済みのCSVエクスポートから始まります。
basedbは、AIネイティブなソフトウェアスタジオEodiaが開発するフリーソフトウェアです。