---
# System prepended metadata

title: Line-fitness データベース

---

# Line-fitness データベース
MySQL前提で書いた


## アンケート関連
- アンケート質問テーブル
    - アンケートID
    - 質問項目  

| question_id | question                 | (type)       |
| ---------- | ------------------------ | ------------ |
| int        | varchar(255)             | varchar(255) |
| 00001      | どこか痛みはありますか。 　　　　| 姿勢  |
- アンケート選択肢テーブル
    - アンケートID
    - 選択肢ID
    - 選択肢の内容
    - 次のアンケートID
    - option(multiple or free default NULL)

answer_id =99999で選択肢なしの自由記述問題を表す．


| question_id | answer_id    | answer  | next_question_id | opt    |
| ----------- | ------------ | ------- | ---------------- | --- |
| int         | varchar(255) | varchar | int              |   varchar  |
| 00001       | 1         |     なんですか？    | 00002            |  free   |

- アンケート解答結果
    - アンケートID
    - 解答結果  

| uid    | question_id | answer_id       |
| --- | ----------- | ------------ |
|  varchar   | int         | varchar(255) |
|     | 00001       | はい         |

## 画像関連
- アップロード画像リンク
    - ID
    - タイプ（front of side）
    - 元画像url
    - 解析後画像URL
    - 日付
    - status(ready, processing, finished)

| uid          | types     | raw_url           | url          | timestamp    | status    |
| ------------ | --------- | ----------------- | ------------ | ------------ | --- |
| varchar(255) | varchar       | varchar              | varchar | timestamp |   varchar  |
| 00001        | front | https:// | https://         | 20210206 21:00:09     |  ready   |

- 解析結果画像リンク
    - gid
    - url
## ユーザー

- ユーザー
    - ユーザー名(name)
    - LINEのuuid(uuid)

** 初回登録時にデータベースに登録される
すでに友達追加済みの場合、一度ブロック→ブロック解除で初回登録世帯を再現できる。
| name     | uuid    |
| ------------ | ------------ |
| varchar(255) | varchar(255) |
| たろう     | ff1234        |

## 管理者
AWS cognitoを使えばDBへのデータ保存は不要
管理者のuid:AWS cognitoのuser poolのsub

## メッセージ
入力のコマンド等はseenをtrueにする。
普通のメッセージはseenをfalseにする。


- メッセージ
    - 送り主のuuid ユーザーのuuidか管理者のuuid (user_id)
    - メッセージのuuid (message_id)
    - 送り先のuuid ユーザーのときはユーザーのuuidで管理者宛の時は0 (target_uuid)
    - 内容 (message)
    - メッセージを送った時刻 (date)
    - 既読(seen)

| user_id     | message_id    | target_uuid |message      | ~~date~~ timestamp               | seen|
| ------------ | ------------ |------------  |------------ | -----------------  | -----|
| varchar(255) | varchar(255) |varchar(255)  |     ~~nvarchar~~ varchar(400) | date               | Bit|
| 00001     | ff1234        | fa13513e        | こんにちは        | 20210206 21:00:09  |False|



## 食事アンケートタイプ

- question_id 食事アンケートのid
- types A,B,C,D,Eのいずれか（今のところ）

| question_id | types        |
| ----------- | ------------ |
| int         | Varchar(255) |
| 200001      | A            |

回答一覧のリストと食事アンケートタイプのリストを持っておく。
回答を一つずつみていって、各typesごとに
1.全くその通りだ→1点
2.どちらかというと→2点
3.時々思い当たる→3点
4.そんなことない→4点
に回答を点数化する。

なぜかアンケート数がバラバラなので平均とって規格化する。

最後に各typesの中から最小値を見つけてそのtypesを出力。