お値段以上! Chat GPT（Javaのクラス定義を元にMySQLのDDL作成)

おぉーーー､期待値を超えてきた!!

# Chat GPT へのリクエスト

以下のJavaのクラス定義を元にMySQLのDDLを作成してください｡データ型定義のインデントは揃えてください｡

```java
public class TiReservationInfo{
  public String reservationSiteName;
  public String reservationNumber;
  public String reservationDateTime;
  public String reservationType;
  public String checkInDate;
  public String checkInTime;
  public String checkOutDate;
  public String guestName;
  public String guestNameKana;
  public String postalCode;
  public String address;
  public String phoneNumber;
  public String faxNumber;
  public String emailAddress;
  public String roomName;
  public String planName;
  public String numberOfRooms;
  public String numberOfAdults;
  public String numberOfChildren;
  public String totalPrice;
  public String points;
  public String billingAmount;
  public String paymentMethod;
  public String remarks;
  public String numberOfNights;
  public String modificationDateTime;
  public String cancellationDateTime;
  public String memberName;
  public String memberNameKana;
  public String roomMaster;
  public String note;
  public String facilityName;
  public String roomCode;
  public String planCode;
  public String consecutiveStayInformation;
  public String roomRateInformation;
  public String numberOfMaleGuests;
  public String numberOfFemaleGuests;
  public String memberAddress;
  public String memberPhoneNumber;
  public String memberFaxNumber;
  public String memberEmailAddress;
  public String memberGender;
  public String memberAge;
  public String memberCompanyName;
  public String memberCompanyPostalCode;
  public String memberCompanyAddress;
  public String memberCompanyPhoneNumber;
  public String memberCompanyFaxNumber;
  public String mealConditions;
  public String details;
}
```

## Chat GPTの回答

クラス定義は全てStringなのですが､､､なんと､名称から型推測しているじゃないですか!!

これだけで15分は作業時間を短縮できたので､Plusの利用料金（20ドル/月）の回収完了
（ちなみに元クラスの変数名もCSVの日本語列名から生成してもらいました｡笑)

もちろん精査と以下のような定義は別途必要です｡

- NULL許可･不許可
- デフォルト値
- Primary KEYやUnique KEY
- シーケンス
- トリガ
- Index
- 外部制約


```sql
CREATE TABLE ti_reservation_info (
  reservation_site_name          VARCHAR(255),
  reservation_number             VARCHAR(255),
  reservation_date_time          DATETIME,
  reservation_type               VARCHAR(255),
  check_in_date                  DATE,
  check_in_time                  TIME,
  check_out_date                 DATE,
  guest_name                     VARCHAR(255),
  guest_name_kana                VARCHAR(255),
  postal_code                    VARCHAR(10),
  address                        VARCHAR(255),
  phone_number                   VARCHAR(20),
  fax_number                     VARCHAR(20),
  email_address                  VARCHAR(255),
  room_name                      VARCHAR(255),
  plan_name                      VARCHAR(255),
  number_of_rooms                INT,
  number_of_adults               INT,
  number_of_children             INT,
  total_price                    DECIMAL(10, 2),
  points                         INT,
  billing_amount                 DECIMAL(10, 2),
  payment_method                 VARCHAR(255),
  remarks                        VARCHAR(255),
  number_of_nights               INT,
  modification_date_time         DATETIME,
  cancellation_date_time         DATETIME,
  member_name                    VARCHAR(255),
  member_name_kana               VARCHAR(255),
  room_master                    VARCHAR(255),
  note                           TEXT,
  facility_name                  VARCHAR(255),
  room_code                      VARCHAR(255),
  plan_code                      VARCHAR(255),
  consecutive_stay_information   TEXT,
  room_rate_information          TEXT,
  number_of_male_guests          INT,
  number_of_female_guests        INT,
  member_address                 VARCHAR(255),
  member_phone_number            VARCHAR(20),
  member_fax_number              VARCHAR(20),
  member_email_address           VARCHAR(255),
  member_gender                  VARCHAR(10),
  member_age                     INT,
  member_company_name            VARCHAR(255),
  member_company_postal_code     VARCHAR(10),
  member_company_address         VARCHAR(255),
  member_company_phone_number    VARCHAR(20),
  member_company_fax_number      VARCHAR(20),
  meal_conditions                VARCHAR(255),
  details                        TEXT
);
```

> このDDLにより、TiReservationInfoクラスの各フィールドに対応するテーブルカラムが作成されます。ただし、各カラムのデータ型や長さは必要に応じて変更する必要があります。また、実際のシステムで使用する場合は、インデックスや外部キー制約なども考慮する必要があります。