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

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

ただいまの
回答率

90.33%

  • C#

    7707questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio

    2005questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

【VisualStudio】C# Windows用アプリ開発でのデータ保存について

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 305

taroko

score 24

 前提

社内で利用できるソフトを作ろうと思っています。
タスクやその他、管理用のソフトです。
期間を指定し、TODOリストや進捗等の管理を行います。
以前質問させて頂き、結局データ保存にはSQLiteを利用することにしました。
ベストアンサー変更できないのが申し訳ないです。

 発生している問題・不明点

例えば、「2018年8月」というデータを作成したとして、
新規作成後「2018年9月」というデータを名前を付けて保存出来るようにしたいです。
1年ごとにファイル自体を変えたいことがあると思うので、別名でファイル保存したいです。

Excelの例で言えば、xlsファイルみたいに
名前付けて保存でき、ファイルを開くことが出来るようにしたいと思っています。

どうやって保存していくのが良いのでしょうか?
お勧めの保存形式等はありますでしょうか?

 考えていること

・主データベースを作っておき、そこから出力して新しいデータベースを作成して保存する
(それを読み込むことで、特定データのみの情報を読んだり出来る)
(ファイル名テーブルに、ファイル名とデータベース名を記載しておきそれを読み出す)
→主データベースの量が膨大にならないか?
既にパソコン上から消したもの等判断が難しそう
1日1個、毎日別名で保存する利用方法をしていたら
データベースいっぱいいっぱいになりそう。
削除も面倒そう。
 
・データベース自体を日本語の独自名で保存出来るようにする
→難しそう

 補足情報(FW/ツールのバージョンなど)

Microsoft Visual Studio2017

 追記 9/20 12:44

データベースは必要最小限にとどめたいと思っています。
ユーザーが好きなように変更できる必要もあります。

ユーザーAは1ヶ月ごとにファイルを作り直したい。
読み直しもそれで行いたいというのであれば、別名でファイルを保存できるようにし、容易に開くことが出来るようにします。
ユーザーBは1年ごとにファイル名を変更して保存したい。(余分なデータは要らない)
余分なデータが追加されていくたびにまた、最小限ではないとメンテも大変になります。

データベースで「このユーザーは1ヵ月だけのデータを呼び出したいのか」等
そういうフラグを立てるのは面倒です。プログラム自体も最小限にしたいのです。
別途保存したデータをどのように使うかというと、通常のDBと同じ通りに読み込むだけです。

不要なものは不要なものとして破棄したいですし、1つのDBに頼るのは好ましくありません。
別名でファイル保存でき、それを読み出すことができるようなものが理想です。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • taroko

    2018/09/20 14:10

    ありがとうございます。データベースがどのくらいの量OKなのか等必要知識に欠けているとは思います。すみません。日々200件程度のデータ(200行、20列程度)を書き込んでいった場合、何年経っても動作は大体同じ速度で動くのでしょうか?

    キャンセル

  • yukihisa

    2018/09/20 14:27

    サーバーのスペック等にもよりますが、その答えは「teratail」が快適に使える時点で出ていると言っても良いでしょう。細かい数字を気になさるのなら https://okwave.jp/qa/q8943090.html この辺りを見てみたら少しは安心するのではないでしょうか。最初にきちんと構成しておけばストレージの要領が許す限り、億単位のデータでも問題ないですよ。

    キャンセル

  • Zuishin

    2018/09/20 15:23

    日々たった 200 件ですか? 多分孫子の代まで同じ速度で(むしろ技術の進歩を考えるともっと速く)使えると思いますよ。

    キャンセル

回答 3

checkベストアンサー

0

おそらくデータベースについて誤解が多くあると思いますが、それを無視して言うなら、「データを欠損なく保存できてどこにでもあるアプリで開けるなら何でもいい」ということになりませんか?

kiichi54321 さんの仰るような JSON ならテキストなのでメモ帳で開けます。
また XML や HTML や CSV も同様です。
この中のどれであっても要件は満たすと思います。

データの構造によりますが Excel で開くことのできる CSV が最も見易く編集もし易いと思います。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/09/20 14:07

    ありがとうございます。
    すみません、データベースはざっくり分かるのですが
    アプリ独自の拡張子で保存するようなものは作れないかと考えています。
    Tama5というフリーソフトであれば、xhc5という拡張子でデータが保存されるような感じです。
    確かにデータベースさえあれば問題ないですし、バックアップを取れば問題ないというのもありますが、毎回起動時に必要情報のみ出力するようフィルターをかけるのも面倒だなと思ったので…。
    CSVにしてしまうとExcelとかが既定ソフトになってしまっていると思うので避けたいです。
    やはりデータベースがベストでしょうか。

    キャンセル

  • 2018/09/20 15:18

    Excel が悪い理由がわかりませんが、CSV の拡張子を txt にするとメモ帳が既定ソフトになります。
    またほかの表計算ソフトでも CSV が読めないものはありません。

    キャンセル

  • 2018/09/20 15:20

    それから拡張子をアプリ独自のものにして中身 CSV でも全然構いません。

    キャンセル

0

今どきはJSONが妥当かと。
https://qiita.com/octopa0327/items/46a15d7d463233605cd0

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/09/20 12:37

    表題にある「データ保存について」の話に JSON が出てくるのはどういう訳ですか?

    キャンセル

  • 2018/09/20 12:40

    データベースの内容をJSON形式で保存するのがベスト、ということでしょうか?

    キャンセル

  • 2018/09/20 12:45

    検索性だけが用途なのであれば別途保存しないのがベストだと思います。

    キャンセル

  • 2018/09/20 13:40

    JSON でデータを保存するのがベストなんてことはまず絶対と言っていいほどありません。何か見当違いがあるようで、話が噛み合ってないようです。

    キャンセル

0

しっかり考え直してみたら
「別名保存したい」という意味も良く分からなくなってきました。
過去のデータは過去のデータでテーブルわけすれば良いし
データもそこまで大きくならないと思うので、
同じDBを利用仕様と思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/10/12 12:30

    ベストアンサー頂きましたが、そういう結論なら私の考えとは一致しますが実際の回答の趣旨とは全く違うので、後で見る人のことを考えると自己解決の方がいいと思います。

    キャンセル

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

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

同じタグがついた質問を見る

  • C#

    7707questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Visual Studio

    2005questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。