none
【C#】簡単掲示板のお勧め構成【SQL】 RRS feed

  • 質問

  • ASP.NET(C#)でごくごくありふれた掲示板を作りたいと考えています。

    データベースはsqlにしようと思うのですが

    mysqlやらMicrosoftのsqlがあったりとどうするのがいいのか皆さんにご相談です。

    Microsoftの掲示板でmysqlの方をお勧めだというのはちょっと失礼にあたるかもしれないんですが

    天下のマイクロソフトさんの懐の深さを信じて質問させていただきます。

    よろしくお願いします。

    2012年1月9日 4:17

回答

  • > データベースはsqlにしようと思うのですが
    >mysqlやらMicrosoftのsqlがあったりとどうするのがいいのか皆さんにご相談です。

    接続できれば何でも良いのじゃないでしょうか。
    MS以外でもMySqlとかPostgresなら接続できると思います。
    めんどくさいなら <a href="http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff">SQLServer Express</a> (MS)で十分かと思います。

    DBを選ぶ際に、なにか気にしている点があるならそれをお書きになったほうがよいです。

    # もっとも、ありふれた掲示板なら別にASP.NETじゃなくてもPHPとかでかかれたものが
    # すでにたくさんあるのでそれを使えばいいじゃないかと思います。

    2012年1月9日 4:32
  • 質問者さんのSQLの経験にもよるかと思います。

     

    ですが、まぁ mars12 さんの通り、SQL Server Express Edition が無難じゃないですかね。

    Managment Studio Express という管理ツールもありますし、

    昔はネックになった容量も、2008 R2からは10GBになりましたしね。

     

    レスポンス等、色々考慮すればその他のDBMSにすべきケースは勿論ありますが、

    今回の様に”勉強”を前提とするのであれば、SQL Server が良いと思いますよ。

    ※個人的な見解として、Oracle や MySQL と比べて簡易的なDB構築では扱いやすいイメージがあります。

     

    ・・・もちろん、 Oracle も MySQL も 他のDBMSも素晴らしいソフトですよ。

    2012年1月9日 7:54
  • 何に主眼を置いて勉強したいかも関係するように思います。
    .NET や Web アプリのプログラミングを学びたいのか、Web サイトや DB 等の環境構築を学びたいのか。

    プログラミングの勉強であれば、長いものに巻かれるという意味でも SQL Server がお手軽だと思います。
    環境構築やらプログラミング方法やらの情報が豊富に揃っていますし。
    MySQL 等ですと、.NET の世界では少数派になってしまいますので、環境構築の段階から一苦労するんではないでしょうか。
    (それを克服することで得られるものもあるわけですが。)
    2012年1月9日 9:26
  • > メルアド登録したメンバ限定の簡易掲示板ということでしたらどうでしょうか?

    お勧めは、誰がなんと言っても SQL Server Express です。

    ドキュメントやサンプルが豊富、ADO.NET と整合性、フォーム認証と統合が容易
    などの点を考えれば、SQL Server が選択できるならそれ以外の選択肢はないと言
    ってもいいと思います。

    MySQL にも Connector や MemebershipProvider が準備されていて、Visual
    Studio から接続できるようにできますが、使い勝手は SQL Server と同じとい
    うわけには行きません。

     

    2012年1月9日 11:40
  • 何を勉強するかにもよるけれど、単純にASP.NETの動きを勉強したいなら、RDBのインストールや細かい違いを気にするよりも、MS純正品を使ったほうが余計な部分で悩むところはなくていいですよね。

    RDBのインストールがいらない点で、SQL Server Compactってのも一つの選択肢かも。

    2012年1月10日 0:11
  • # このタイトルの書き方はなんとかならないのかなぁ…それからsqlやmysqlではなくSQL ServerやMySQLでしょう。他者とコミュニケーションするなら正しく表記すべきです。

    ASP.NETとのことですが、.NET Frameworkでデータベースを扱うコンポーネントとしてはADO.NETという名前になっています。そしてADO.NETのアーキテクチャを見てもらえればわかりますが、データベースへの接続方法(とそれに対するコードの書き方)が多種多様にあります。

    • Commandで直接操作
    • DataSet
    • LINQ to DataSet
    • LINQ to SQL
    • ADO.NET Entity Framework
    • WCF Data Service

    これらのうち、どの機能を使って「ごくごくありふれた掲示板」を作成するのか、この辺りご自身で比較・検討してみてください。ASP.NETから扱いやすいもの・そうでないものもあります。
    # それに対する質問はASP.NETフォーラムは不適切かもしれません。

    で、これらの接続方法のうち、MySQLや他のデータベースエンジンの場合、サポートされていないものも存在します。既に他の方がSQL Server ExpressやSQL Server Compactを提案されていますが、この2つはさすがにMicrosoft社製品ということもあり、ほぼいずれの接続方法もサポートされています。

    データベースエンジンに何を使用するのか、比較基準はこんなところではないでしょうか。

    ところで質問者さんはMySQLに慣れているのでしょうか?

    2012年1月10日 1:03
  • 皆さんとは別観点から回答します。

    データベースはsqlにしようと思うのですがmysqlやらMicrosoftのsqlがあったりとどうするのがいいのか皆さんにご相談です。

    Microsoftの掲示板でmysqlの方をお勧めだというのはちょっと失礼にあたるかもしれないんですが

    天下のマイクロソフトさんの懐の深さを信じて質問させていただきます。

    このフォーラムは技術的な話題が中心なので、特に気にする必要はないと思います。

    MySQL 用の ADO.NET ドライバなら MySQL Connector/NET という製品が存在します。これを使えば比較的簡単に MySQL と接続できます。

    MySQL Connector/NET

    MySQL Connector/Net の使い方に関しては、以下の記事が参考になるかも知れません。

    MySQL で LINQ を使う

    ASP.NET との親和性という観点からいえば SQL Server 一押しでしょうが、MySQL もたいへんユーザーが多い RDBMS です。あえて困難を承知で人とは違うルートを選び、その方面の先駆者になるのもいいかもしれません。

     


    ひらぽん http://d.hatena.ne.jp/hilapon/
    2012年1月10日 1:50
  • メルアドとPWを登録するDBと条件をつけたらもう少し皆さんがご回答しやすくなりますでしょうか?

    単純にメールアドレスやパスワードを記録するのであれば、どのデータベースでも基本的な機能で可能であり、一般的に大きな違いは無いでしょう。最低でもパスワードは第3者に読まれないようにすることをお勧めしますが、データベースによって暗号化などの機能的な面で差があります。しかし、そのような機能を使わずにハッシュ化して記録しておけば、通常の機能で実現できます。
    とりあえず勉強のためということですので上記のような暗号化まで必要ないかもしれませんが、将来実現されたいことがあるのであれば、ある程度のシナリオを考えて、それに沿ってデータベースを選択されるに越したことはないでしょう。どこにアプリケーションを配置するのかや、想定されるユーザー数などによって求められるデータベースやそのエディションも変わります。エディションによってはライセンス料が発生する場合もあります。

    一般的にASP.NETの学習を始めるにあたって、SQL Server(Express版を含む)を選択することが基本です。SQL Serverを選択しない場合は、何か理由がある場合だと考えても差し支えないでしょう。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2012年1月10日 2:02
    モデレータ

すべての返信

  • > データベースはsqlにしようと思うのですが
    >mysqlやらMicrosoftのsqlがあったりとどうするのがいいのか皆さんにご相談です。

    接続できれば何でも良いのじゃないでしょうか。
    MS以外でもMySqlとかPostgresなら接続できると思います。
    めんどくさいなら <a href="http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff">SQLServer Express</a> (MS)で十分かと思います。

    DBを選ぶ際に、なにか気にしている点があるならそれをお書きになったほうがよいです。

    # もっとも、ありふれた掲示板なら別にASP.NETじゃなくてもPHPとかでかかれたものが
    # すでにたくさんあるのでそれを使えばいいじゃないかと思います。

    2012年1月9日 4:32
  • mars12さんご返答ありがとうございます。

    作ろうと思ったきっかけはASP.NETをすこしかじっていたので勉強がてらに作ろうと思ったのです。

    ですので、掲示板を運営するとかじゃないので勉強できれば十分でございます。

     

    DBを選ぶときに気になる点ですか・・・

    特にないのですがもしかしたらいつか役に立つかもしれないので

    メルアド登録したメンバ限定の簡易掲示板ということでしたらどうでしょうか?

    メルアドとPWを登録するDBと条件をつけたらもう少し皆さんがご回答しやすくなりますでしょうか?

     

    2012年1月9日 4:44
  • 質問者さんのSQLの経験にもよるかと思います。

     

    ですが、まぁ mars12 さんの通り、SQL Server Express Edition が無難じゃないですかね。

    Managment Studio Express という管理ツールもありますし、

    昔はネックになった容量も、2008 R2からは10GBになりましたしね。

     

    レスポンス等、色々考慮すればその他のDBMSにすべきケースは勿論ありますが、

    今回の様に”勉強”を前提とするのであれば、SQL Server が良いと思いますよ。

    ※個人的な見解として、Oracle や MySQL と比べて簡易的なDB構築では扱いやすいイメージがあります。

     

    ・・・もちろん、 Oracle も MySQL も 他のDBMSも素晴らしいソフトですよ。

    2012年1月9日 7:54
  • 何に主眼を置いて勉強したいかも関係するように思います。
    .NET や Web アプリのプログラミングを学びたいのか、Web サイトや DB 等の環境構築を学びたいのか。

    プログラミングの勉強であれば、長いものに巻かれるという意味でも SQL Server がお手軽だと思います。
    環境構築やらプログラミング方法やらの情報が豊富に揃っていますし。
    MySQL 等ですと、.NET の世界では少数派になってしまいますので、環境構築の段階から一苦労するんではないでしょうか。
    (それを克服することで得られるものもあるわけですが。)
    2012年1月9日 9:26
  • > メルアド登録したメンバ限定の簡易掲示板ということでしたらどうでしょうか?

    お勧めは、誰がなんと言っても SQL Server Express です。

    ドキュメントやサンプルが豊富、ADO.NET と整合性、フォーム認証と統合が容易
    などの点を考えれば、SQL Server が選択できるならそれ以外の選択肢はないと言
    ってもいいと思います。

    MySQL にも Connector や MemebershipProvider が準備されていて、Visual
    Studio から接続できるようにできますが、使い勝手は SQL Server と同じとい
    うわけには行きません。

     

    2012年1月9日 11:40
  • 何を勉強するかにもよるけれど、単純にASP.NETの動きを勉強したいなら、RDBのインストールや細かい違いを気にするよりも、MS純正品を使ったほうが余計な部分で悩むところはなくていいですよね。

    RDBのインストールがいらない点で、SQL Server Compactってのも一つの選択肢かも。

    2012年1月10日 0:11
  • # このタイトルの書き方はなんとかならないのかなぁ…それからsqlやmysqlではなくSQL ServerやMySQLでしょう。他者とコミュニケーションするなら正しく表記すべきです。

    ASP.NETとのことですが、.NET Frameworkでデータベースを扱うコンポーネントとしてはADO.NETという名前になっています。そしてADO.NETのアーキテクチャを見てもらえればわかりますが、データベースへの接続方法(とそれに対するコードの書き方)が多種多様にあります。

    • Commandで直接操作
    • DataSet
    • LINQ to DataSet
    • LINQ to SQL
    • ADO.NET Entity Framework
    • WCF Data Service

    これらのうち、どの機能を使って「ごくごくありふれた掲示板」を作成するのか、この辺りご自身で比較・検討してみてください。ASP.NETから扱いやすいもの・そうでないものもあります。
    # それに対する質問はASP.NETフォーラムは不適切かもしれません。

    で、これらの接続方法のうち、MySQLや他のデータベースエンジンの場合、サポートされていないものも存在します。既に他の方がSQL Server ExpressやSQL Server Compactを提案されていますが、この2つはさすがにMicrosoft社製品ということもあり、ほぼいずれの接続方法もサポートされています。

    データベースエンジンに何を使用するのか、比較基準はこんなところではないでしょうか。

    ところで質問者さんはMySQLに慣れているのでしょうか?

    2012年1月10日 1:03
  • 皆さんとは別観点から回答します。

    データベースはsqlにしようと思うのですがmysqlやらMicrosoftのsqlがあったりとどうするのがいいのか皆さんにご相談です。

    Microsoftの掲示板でmysqlの方をお勧めだというのはちょっと失礼にあたるかもしれないんですが

    天下のマイクロソフトさんの懐の深さを信じて質問させていただきます。

    このフォーラムは技術的な話題が中心なので、特に気にする必要はないと思います。

    MySQL 用の ADO.NET ドライバなら MySQL Connector/NET という製品が存在します。これを使えば比較的簡単に MySQL と接続できます。

    MySQL Connector/NET

    MySQL Connector/Net の使い方に関しては、以下の記事が参考になるかも知れません。

    MySQL で LINQ を使う

    ASP.NET との親和性という観点からいえば SQL Server 一押しでしょうが、MySQL もたいへんユーザーが多い RDBMS です。あえて困難を承知で人とは違うルートを選び、その方面の先駆者になるのもいいかもしれません。

     


    ひらぽん http://d.hatena.ne.jp/hilapon/
    2012年1月10日 1:50
  • メルアドとPWを登録するDBと条件をつけたらもう少し皆さんがご回答しやすくなりますでしょうか?

    単純にメールアドレスやパスワードを記録するのであれば、どのデータベースでも基本的な機能で可能であり、一般的に大きな違いは無いでしょう。最低でもパスワードは第3者に読まれないようにすることをお勧めしますが、データベースによって暗号化などの機能的な面で差があります。しかし、そのような機能を使わずにハッシュ化して記録しておけば、通常の機能で実現できます。
    とりあえず勉強のためということですので上記のような暗号化まで必要ないかもしれませんが、将来実現されたいことがあるのであれば、ある程度のシナリオを考えて、それに沿ってデータベースを選択されるに越したことはないでしょう。どこにアプリケーションを配置するのかや、想定されるユーザー数などによって求められるデータベースやそのエディションも変わります。エディションによってはライセンス料が発生する場合もあります。

    一般的にASP.NETの学習を始めるにあたって、SQL Server(Express版を含む)を選択することが基本です。SQL Serverを選択しない場合は、何か理由がある場合だと考えても差し支えないでしょう。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2012年1月10日 2:02
    モデレータ
  • みなさんごかいとうありがとうございます。

    SQL Sever圧巻ですな。

    2012年1月10日 12:13