riku1021 / SimpLyz

About This web application is a BI tool that allows “Simple” “analysis”.
https://simplyz.vercel.app
1 stars 0 forks source link

データベース設計 #30

Closed yukihito-jokyu closed 1 week ago

riku1021 commented 1 month ago

データベース設計


Userテーブル

フィールド名 データ型 説明
UserId UUID ユーザーの一意の識別子(主キー)
MeilAdress VARCHAR(255) ユーザーのメールアドレス
Password VARCHAR(255) ユーザーのパスワード
GeminiApiKey VARCHAR(255) ユーザーのGeminiApiKey

Csvテーブル

フィールド名 データ型 説明
CsvId UUID CSVファイルの一意の識別子(主キー)
CsvFile Unknown CSVファイル本体
JsonFile Unkown 型情報が記載されたjsonファイル
UserId UUID ユーザーID(Userテーブルへの外部キー)
FileName VARCHAR(255) ファイル名
DataSize INT データサイズ(バイト数)
DataColumns INT データのカラム数
DataRows INT データの行数
UploadDate TIMESTAMP アップロード日
LastAccessedDate TIMESTAMP 最終更新日
yukihito-jokyu commented 1 month ago

frontendがどういうAPIを必要としているか記載して欲しい。

引数と返り値があれば分かりやすくてうれしいです。

riku1021 commented 1 month ago

Frontendが必要なAPI

フィールド名 引数 戻り値
ユーザーを保存するAPI UserId, MailAddress, Password StatusMessage
Passwordを変更するAPI UserId, NewPassword StatusMessage
Passwordを確認するAPI UserId, Password StatusMessage
メールアドレスを変更するAPI UserId, NewMailAddress StatusMessage
ユーザーを認証するAPI MailAddress, Password UserId
ユーザーを削除するAPI UserId StatusMessage
GeminiApiKeyを保存するAPI UserId, GeminiApiKey StatusMessage
GeminiApiKeyを取得するAPI UserId GeminiApiKey
GeminiApiKeyを変更するAPI UserId, NewGeminiApiKey StatusMessage
ユーザーのCSVファイルを一覧で取得するAPI UserId CSVファイルの一覧
CSVファイルを削除するAPI UserId, CsvId StatusMessage
最終更新日を更新するAPI UserId, CsvId, LastAccessedDate StatusMessage
CSVファイルをアップロードするAPI UserId, CsvFile StatusMessage

※ StatusMessage: "Success" or "Failed"

CSVファイルの一覧の詳細

riku1021 commented 1 month ago

仮で設計してみたから過不足あるときは適宜変更お願いします。

違和感のあるAPIがあったら教えてほしいです。

yukihito-jokyu commented 1 month ago

「CSVファイルをアップロードするAPI」のみcsvの情報(ファイル名やカラム数など)をデータベースに保存するためbackend経由になります。

yukihito-jokyu commented 1 month ago

backendが必要なAPI

フィールド名 引数 戻り値
csvファイル,jsonファイルをアップロードするAPI CsvFile, JsonFile StatusMessage
csvファイル,jsonファイルを取得するAPI CsvId CsvFile, JsonFile
riku1021 commented 4 weeks ago

@yukihito-jokyu

ログイン関連だけ安全性とUUID発行のためにFirebaseのAuthenticationで管理しようと考えてるんだけどどう思う? その場合、UserテーブルのMeilAdressとPasswordフィールドが不要になって、以下が必要なくなる。(パスワード・メールアドレスはAuthenticationで管理)

API機能 引数 戻り値
ユーザーを保存するAPI UserId, MailAddress, Password StatusMessage
Passwordを変更するAPI UserId, NewPassword StatusMessage
Passwordを確認するAPI UserId, Password StatusMessage
メールアドレスを変更するAPI UserId, NewMailAddress StatusMessage
ユーザーを認証するAPI MailAddress, Password UserId
ユーザーを削除するAPI UserId StatusMessage

※ユーザーを保存するAPIだけ変更

API機能 引数 戻り値
ユーザーを保存するAPI UserId StatusMessage

もしじゃない方が良いor戻れないとかだったら、元のままで、フロントエンドでUUID発行しようかなと思う。

yukihito-jokyu commented 4 weeks ago

ハッシュ化を実装したら安全性を担保できると思う。 実際に実装してみたかったので、FirebaseのAuthenticationではなく、データベースで管理したい。

riku1021 commented 4 weeks ago

なるほど、ありがと、了解🫡

yukihito-jokyu commented 3 weeks ago

質問! 「Passwordを確認するAPI」はどのような場面で使われる? 「メールアドレスを変更するAPI」について、この処理は妥当か?

riku1021 commented 3 weeks ago

回答! ・「Passwordを確認するAPI」は、GeminiApiKeyのを確認する時に入力してもらう。(デフォルトの表示は「・・・」) ・「この処理は妥当か?」が抽象的すぎるかも。詳しい疑問をお聞きしたい。

ちなみになんだけど、ログイン処理はどう考えてる?毎回、メアドとパスワード入力?

yukihito-jokyu commented 3 weeks ago

Passwordを確認するAPI->OK

「メールアドレスを変更するAPI」->既存のシステムやサービスに無いような機能だと思いました。僕のイメージとして一つのアカウントに一つのメールアドレスが基本だと思っていました。しかし、調べてみたらメールアドレスの変更があるようなので、実装しておきます。申し訳ません。

yukihito-jokyu commented 3 weeks ago

「GeminiApiKeyを変更するAPI」について「GeminiApiKeyを保存するAPI」と処理が同じなので実装しない方向になります。

riku1021 commented 3 weeks ago

create database simplyzでデータベースができてないっぽい。。。原因わかる??

iriku@OK220164:~/myproject/SimpLyz/dev/database/sql$ psql "postgresql://admin@localhost/postgres" psql (14.13 (Homebrew)) Type "help" for help.

postgres=# create database simplyz postgres-# \q iriku@OK220164:~/myproject/SimpLyz/dev/database/sql$ psql -l List of databases

Name Owner Encoding Collate Ctype Access privileges
postgres iriku UTF8 C C
template0 iriku UTF8 C C =c/iriku +
iriku=CTc/iriku
template1 iriku UTF8 C C =c/iriku +
iriku=CTc/iriku

(3 rows)

iriku@OK220164:~/myproject/SimpLyz/dev/database/sql$

riku1021 commented 3 weeks ago

create database simplyzでデータベースができてないっぽい。。。原因わかる??

iriku@OK220164:~/myproject/SimpLyz/dev/database/sql$ psql "postgresql://admin@localhost/postgres" psql (14.13 (Homebrew)) Type "help" for help.

postgres=# create database simplyz postgres-# \q iriku@OK220164:~/myproject/SimpLyz/dev/database/sql$ psql -l List of databases

Name Owner Encoding Collate Ctype Access privileges postgres iriku UTF8 C C
template0 iriku UTF8 C C =c/iriku + iriku=CTc/iriku template1 iriku UTF8 C C =c/iriku + iriku=CTc/iriku (3 rows)

iriku@OK220164:~/myproject/SimpLyz/dev/database/sql$

create database simplyzではなくCREATE DATABASE simplyz;で作成された!

riku1021 commented 3 weeks ago

Goの導入について、.zshrc ファイルってどこにある想定?

yukihito-jokyu commented 3 weeks ago

~ディレクトリにある想定 確認するコマンド

cd ~
ls -a

これで.zshrcがあるかどうか確認して欲しい。 もしなかったら、lsコマンド後の結果をスクリーンショット撮って直接送ってほしい

riku1021 commented 3 weeks ago

なさそう。。。 image

yukihito-jokyu commented 3 weeks ago

zsh入ってない?

riku1021 commented 3 weeks ago

なさそう。。。 image

これの表示ではなく??

yukihito-jokyu commented 2 weeks ago

「GeminiApiKeyを取得するAPI」について

frontend側でGeminiのAPIを表示させるために必要と言っていたが、本当に表示させる必要性があるのか?