質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.53%

Gitによるデータベース風運用

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 797
退会済みユーザー

退会済みユーザー

Gitを用いてデータベースのようなシステムを構築したいと考えています

今考えているのがWebサーバーにある作品のレビューサイトから、リモートリポジトリにある
作品データを反映し表示させる
さらにWebサイトからコメントを送信して、それをリモートに保存し、Webサイトに表示させる
といったものを構築したいと考えています。

調べた限りでは、Webサーバーにあるものに対してデプロイをかけるということは判明したのですが、
あくまで変更をかけるといったことしか書かれていません

勉強不足なのは重々承知の上なのですが、上記のシステムは構築可能でしょうか?
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+2

gitはバージョン管理ツールですから、「作品」の管理部分をgitでやるのはあり得ると思いますが、コメントやその他のプロパティを扱うには適していません。

「作品」「コメント」がどういう類のものかわかりませんが、初めから全てデータベースで扱った方が良さそうです。gitとデータベースの混合にしたりすると、アトミックに処理したい操作が増えたときにハマる予感がします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/28 13:26

    作品というのはCG作品で、その評価のコメントです。Webサイトでそれらを表示し、Gitで管理したいと考えています。
    始めはデータベースで行う予定でしたが、Gitで全部できないかと言われ、悩んでおります

    キャンセル

  • 2016/11/29 13:38

    ユーザー要望の目的を知るのが最も重要です。
    なぜ「Gitで全部できないか」という要望を発しているのでしょうか? 誤った知識による要望ならばそれをただすべきでしょう。尤もな理由があるのなら、その理由を充足するような別の解決方法を提示すれば良いでしょう。

    キャンセル

checkベストアンサー

0

ざっと質問文読みましたが、やってできないことはないです。
しかしやめといたほうがいいでしょう。

後でコメントを一覧化して悪いコメントを削除する要望でると工数が掛かりそうです。
また、Webサーバー複数台になると絶対無理なので断ってください。
コンフリクト多発で頓挫が目に見えています。


Gitは単なるバージョン管理ですので、テキストファイルベースで管理すれば良いでしょう。
ファイル形式はJSONやYaml等を利用すればうまく管理出来るかと思います。

やるとすれば昔のCGI時代のホームページで利用されていた作戦を応用します。
受け皿にDBを利用し、定期的に静的なページを吐き出すという仕組みです。

例えば1分間に1度Cronが走り、DB(今回はSQLiteとします)のコメントテーブルを精査します。
コメントに従って各記事のコメントファイル(JSONやYaml)を更新してGitコミットします。
反映したコメントはDBから削除してしまえばコメントファイルのみの管理に集中できます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/29 01:33

    ご回答ありがとうございます
    コメント削除やWebサーバーを複数台は考えていないそうです

    あまり知識がなく申し訳ないのですが、DBにまず保存をかけてそのあとJSON等で管理をするということでしょうか?
    そのあとはGitで管理し反映させる。。。という流れで合ってますか?

    キャンセル

  • 2016/11/29 09:00

    その通りです。
    DBの特にSQL(OracleやMySQL等)は金融系のシステムで使われるなど、全国の端末が一斉に登録し始め、1件でも登録が漏れると超困るシステムでも使われる堅牢なシステムです。
    これを一枚かませる事で実現までの道のりは相当楽になるでしょう。

    Cronはジョブスケジューラーと呼ばれ、定刻になったら特定のLinuxコマンドを叩いてくれるTOOLです。
    設定は思いつく限りの事は大抵でき、「毎分実行」「日曜日の午前2時に実行」「月初の午後3時に実行」なんてことも可能です。

    Cronに呼び出されたバッチは、まずSQLのselect文でコメント一覧を取り出し、取り出したコメントを消去します。
    その後、記事毎に生成されたコメントファイルを開き追記していきます。
    PHP等の言語には大抵Gitを触るライブラリがありますので、コメントファイルを書き終えたらAdd→Commit→PushでGitHub等に更新内容を保存します。

    キャンセル

  • 2016/11/30 10:51

    なんとかできました!!
    ありがとうございます

    キャンセル

  • 2016/11/30 11:24

    なんとかなるもんですね。お疲れ様です。
    因みにGitHubやBitBucketはリポジトリの全体容量1GB制限があり、
    またよくサービスが一時的に停止します。

    容量監視は必要ですし、
    PushやPullに失敗してもサービスがコケないような仕組みを構築するといざという時に強いシステムになりそうです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる