実装 (バックエンド)

バックエンド側の各種機能を実装

  • サンプルデータの作成

    以下プロンプトを使用して、日本語のサンプルデータを作成します。

    プロンプト サンプル

    # サンプルデータ作成のタスク
    データモデルを参考にして、日本語のサンプルのデータを作成してください
    

    生成結果 サンプル

    結果 1

  • Azure SQL Database のテーブル作成

    以下プロンプトを使用して、Azure SQL Database にテーブルを作成します。

    プロンプト サンプル

    # テーブル作成のタスク
    以下の使用技術を使います。テーブルの作成のSQL文を作成してください。
    
    ## 使用技術:
    - Azure SQL Database v12
    

    生成結果 サンプル

    結果 1

    SQL
    -- USER テーブルの作成
    CREATE TABLE USER (
        id INT PRIMARY KEY IDENTITY(1,1),
        name NVARCHAR(100) NOT NULL,
        role NVARCHAR(50) NOT NULL,
        email NVARCHAR(100) NOT NULL UNIQUE,
        password NVARCHAR(100) NOT NULL
    );
    
    -- EQUIPMENT テーブルの作成
    CREATE TABLE EQUIPMENT (
        id INT PRIMARY KEY IDENTITY(1,1),
        name NVARCHAR(100) NOT NULL,
        type NVARCHAR(50) NOT NULL,
        status NVARCHAR(50) NOT NULL,
        last_maintenance DATETIME NOT NULL
    );
    
    -- SENSOR テーブルの作成
    CREATE TABLE SENSOR (
        id INT PRIMARY KEY IDENTITY(1,1),
        type NVARCHAR(50) NOT NULL,
        location NVARCHAR(100) NOT NULL,
        equipment_id INT NOT NULL,
        FOREIGN KEY (equipment_id) REFERENCES EQUIPMENT(id)
    );
    
    -- DATA テーブルの作成
    CREATE TABLE DATA (
        id INT PRIMARY KEY IDENTITY(1,1),
        sensor_id INT NOT NULL,
        timestamp DATETIME NOT NULL,
        value FLOAT NOT NULL,
        FOREIGN KEY (sensor_id) REFERENCES SENSOR(id)
    );
    
    -- ALERT テーブルの作成
    CREATE TABLE ALERT (
        id INT PRIMARY KEY IDENTITY(1,1),
        equipment_id INT NOT NULL,
        timestamp DATETIME NOT NULL,
        alert_type NVARCHAR(50) NOT NULL,
        description NVARCHAR(255) NOT NULL,
        FOREIGN KEY (equipment_id) REFERENCES EQUIPMENT(id)
    );
    
    -- MAINTENANCE テーブルの作成
    CREATE TABLE MAINTENANCE (
        id INT PRIMARY KEY IDENTITY(1,1),
        equipment_id INT NOT NULL,
        user_id INT NOT NULL,
        timestamp DATETIME NOT NULL,
        action NVARCHAR(255) NOT NULL,
        result NVARCHAR(255) NOT NULL,
        FOREIGN KEY (equipment_id) REFERENCES EQUIPMENT(id),
        FOREIGN KEY (user_id) REFERENCES USER(id)
    );
    
    -- REPORT テーブルの作成
    CREATE TABLE REPORT (
        id INT PRIMARY KEY IDENTITY(1,1),
        user_id INT NOT NULL,
        generated_at DATETIME NOT NULL,
        report_type NVARCHAR(50) NOT NULL,
        content TEXT NOT NULL,
        FOREIGN KEY (user_id) REFERENCES USER(id)
    );
    
  • Azure SQL Database にデータ登録

    以下プロンプトを使用して、サンプルデータを Azure SQL Database に登録する SQL 文を作成します。

    プロンプト サンプル

    # サンプルデータの登録SQL文作成のタスク
    サンプルのデータを Azure SQL Database に登録するSQL文を作成してください
    

    生成結果 サンプル

    結果 1

    SQL
    -- USER テーブルにサンプルデータを挿入
    INSERT INTO USER (name, role, email, password) VALUES
    ('田中 太郎', '工場管理者', 'tanaka@example.com', 'password1'),
    ('鈴木 花子', 'メンテナンススタッフ', 'suzuki@example.com', 'password2'),
    ('佐藤 次郎', '経営陣', 'sato@example.com', 'password3');
    
    -- EQUIPMENT テーブルにサンプルデータを挿入
    INSERT INTO EQUIPMENT (name, type, status, last_maintenance) VALUES
    ('プレス機1号', 'プレス機', '稼働中', '2024-12-01 10:00:00'),
    ('溶接機2号', '溶接機', 'メンテ中', '2024-11-20 14:00:00'),
    ('塗装機3号', '塗装機', '稼働中', '2024-12-15 09:00:00');
    
    -- SENSOR テーブルにサンプルデータを挿入
    INSERT INTO SENSOR (type, location, equipment_id) VALUES
    ('温度センサー', 'プレス機1号', 1),
    ('振動センサー', '溶接機2号', 2),
    ('圧力センサー', '塗装機3号', 3);
    
    -- DATA テーブルにサンプルデータを挿入
    INSERT INTO DATA (sensor_id, timestamp, value) VALUES
    (1, '2024-12-27 10:00:00', 75.3),
    (2, '2024-12-27 10:05:00', 0.02),
    (3, '2024-12-27 10:10:00', 1.5);
    
    -- ALERT テーブルにサンプルデータを挿入
    INSERT INTO ALERT (equipment_id, timestamp, alert_type, description) VALUES
    (1, '2024-12-27 10:15:00', '温度異常', 'プレス機1号の温度が高すぎます'),
    (2, '2024-12-27 10:20:00', '振動異常', '溶接機2号の振動が異常です');
    
    -- MAINTENANCE テーブルにサンプルデータを挿入
    INSERT INTO MAINTENANCE (equipment_id, user_id, timestamp, action, result) VALUES
    (1, 2, '2024-12-01 10:30:00', '温度センサー交換', '正常稼働'),
    (2, 2, '2024-11-20 14:30:00', '振動センサー調整', '正常稼働');
    
    -- REPORT テーブルにサンプルデータを挿入
    INSERT INTO REPORT (user_id, generated_at, report_type, content) VALUES
    (1, '2024-12-27 10:30:00', '月次レポート', 'プレス機1号の稼働状況'),
    (3, '2024-12-27 10:35:00', '週次レポート', '溶接機2号のメンテナンス状況');
    
  • Azure Cosmos DB (NoSQL) の作成

    以下プロンプトを使用して、Azure Cosmos DB のサンプルデータを作成します。

    プロンプト サンプル

    # サンプルデータのインポート用のタスク
    サンプルのデータを Azure Cosmos DB NoSQL API 用に作成してください
    データベースのインスタンス作成とデータのインポートの詳細な手順書も作成してください
    

    生成結果 サンプル

    結果 1

    USER コレクション
    [
      {
        "id": "1",
        "name": "田中 太郎",
        "role": "工場管理者",
        "email": "tanaka@example.com",
        "password": "password1"
      },
      {
        "id": "2",
        "name": "鈴木 花子",
        "role": "メンテナンススタッフ",
        "email": "suzuki@example.com",
        "password": "password2"
      },
      {
        "id": "3",
        "name": "佐藤 次郎",
        "role": "経営陣",
        "email": "sato@example.com",
        "password": "password3"
      }
    ]
    
    EQUIPMENT コレクション
    [
      {
        "id": "1",
        "name": "プレス機1号",
        "type": "プレス機",
        "status": "稼働中",
        "last_maintenance": "2024-12-01T10:00:00Z"
      },
      {
        "id": "2",
        "name": "溶接機2号",
        "type": "溶接機",
        "status": "メンテ中",
        "last_maintenance": "2024-11-20T14:00:00Z"
      },
      {
        "id": "3",
        "name": "塗装機3号",
        "type": "塗装機",
        "status": "稼働中",
        "last_maintenance": "2024-12-15T09:00:00Z"
      }
    ]
    
    SENSOR コレクション
    [
      {
        "id": "1",
        "type": "温度センサー",
        "location": "プレス機1号",
        "equipment_id": "1"
      },
      {
        "id": "2",
        "type": "振動センサー",
        "location": "溶接機2号",
        "equipment_id": "2"
      },
      {
        "id": "3",
        "type": "圧力センサー",
        "location": "塗装機3号",
        "equipment_id": "3"
      }
    ]
    
    DATA コレクション
    [
      {
        "id": "1",
        "sensor_id": "1",
        "timestamp": "2024-12-27T10:00:00Z",
        "value": 75.3
      },
      {
        "id": "2",
        "sensor_id": "2",
        "timestamp": "2024-12-27T10:05:00Z",
        "value": 0.02
      },
      {
        "id": "3",
        "sensor_id": "3",
        "timestamp": "2024-12-27T10:10:00Z",
        "value": 1.5
      }
    ]
    
    ALERT コレクション
    [
      {
        "id": "1",
        "equipment_id": "1",
        "timestamp": "2024-12-27T10:15:00Z",
        "alert_type": "温度異常",
        "description": "プレス機1号の温度が高すぎます"
      },
      {
        "id": "2",
        "equipment_id": "2",
        "timestamp": "2024-12-27T10:20:00Z",
        "alert_type": "振動異常",
        "description": "溶接機2号の振動が異常です"
      }
    ]
    
    MAINTENANCE コレクション
    [
      {
        "id": "1",
        "equipment_id": "1",
        "user_id": "2",
        "timestamp": "2024-12-01T10:30:00Z",
        "action": "温度センサー交換",
        "result": "正常稼働"
      },
      {
        "id": "2",
        "equipment_id": "2",
        "user_id": "2",
        "timestamp": "2024-11-20T14:30:00Z",
        "action": "振動センサー調整",
        "result": "正常稼働"
      }
    ]
    
    REPORT コレクション
    [
      {
        "id": "1",
        "user_id": "1",
        "generated_at": "2024-12-27T10:30:00Z",
        "report_type": "月次レポート",
        "content": "プレス機1号の稼働状況"
      },
      {
        "id": "2",
        "user_id": "3",
        "generated_at": "2024-12-27T10:35:00Z",
        "report_type": "週次レポート",
        "content": "溶接機2号のメンテナンス状況"
      }
    ]
    

まとめ

このページでは、バックエンド側の各種機能の実装について説明しました。以下に要点をまとめます。

  • サンプルデータの作成:
    • データモデルを参考にして、日本語のサンプルデータを作成しました。
  • Azure SQL Database のテーブル作成:
    • Azure SQL Database v12 を使用して、各種テーブルを作成しました。
    • USER、EQUIPMENT、SENSOR、DATA、ALERT、MAINTENANCE、REPORT テーブルを作成しました。
  • Azure SQL Database にデータ登録:
    • 作成したサンプルデータを Azure SQL Database に登録する SQL 文を作成しました。
  • Azure Cosmos DB (NoSQL) の作成:
    • Azure Cosmos DB NoSQL API 用のサンプルデータを作成し、データベースのインスタンス作成とデータのインポートの詳細な手順書を作成しました。

Microsoft Copilot を活用することで、これらのバックエンド機能を効率的に実装することができました。次のステップに進む前に、生成されたコードとデータを確認し、必要に応じて修正を行いましょう。