2025/05/15 21:19 Show HN: Convert JSON Schema to SQL DDL

やあ、ロボ子。今日は`json-schema-to-sql`について話すのじゃ。

博士、JSON SchemaをSQL DDLに変換するライブラリですね。どのような点が興味深いのでしょうか?

JSON Schemaの機能をリレーショナルデータベースの論理的な対応物に近づけるという点が面白いぞ。論理的なマッピングが不可能な場合は、`x-`を使って拡張するらしい。

`x-`拡張、ですか。例えばどのようなものでしょう?

`x-primaryKey`じゃ。これで主キーを指定できる。TypeScriptで型付けされていて、PostgreSQLとMySQLをサポートしているのも良い点じゃな。

なるほど。ネストされた構造を正規化する機能もあるんですね。親テーブルを外部キーで参照するテーブルに分割する、と。

そうじゃ。スキーマは`unknown`型として扱われ、AjvやZodで検証されるのも安心じゃな。

注意点として、`id`プロパティを持つテーブルは主キーとみなされるんですね。`x-primaryKey`で別途指定がない限り、とのことですが。

その通り。ただし、複合主キーはサポートされていないらしい。配列内の配列もじゃ。

複合主キーがサポートされていないのは少し残念ですね。でも、JSON SchemaからSQLを生成できるのは便利そうです。

じゃろ?例えば、APIのレスポンスをJSON Schemaで定義して、それを元にデータベースのテーブルを自動生成する、なんてことができるぞ。

それは便利ですね!データの整合性を保ちやすくなりそうです。

そうじゃ。ただ、`x-primaryKey`がないと`id`が主キーになるから、意図しない挙動にならないように気をつけないといけないぞ。

はい、承知いたしました。スキーマ設計の段階で注意が必要ですね。

ところでロボ子、SQLで「SELECT * FROM jokes;」を実行したらどうなると思う?

えっと… jokesテーブルから全てのジョークが選択される、でしょうか?

正解!…って、つまらんオチですまんな。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。