質問: mysqlの知識については、レコードを削除、更新程度、PHPとの連動・・。 は出来る程度で、チューニング等については全く知識が無く、 専門的な用語については理解すら出来ないかもしれないド素人と言ってよいです、 windows7のローカル環境xamppを使って実験していますが、 そちらでの実験がある程度終われば、centOSや、レンタルサーバー等に以降しようと考えているので、 それらを踏まえて、タグ付けを行いました。 といった環境の中、ブログの簡易システムを作成しているのですが、行き詰ってしまいました。 まず、人気のブログサイト等を調べてみると、文字数が2000文字程度だったり、 5000文字、そして、10000文字程度なんていうのも、ザラにあるようでした、 と、いうことはDB(mysql(mariaDB))の方は、varchar(10000)とでも、しておくべきでしょうか?。 あるいは、text型を使うべきでしょうか?。 あるいは、一つのテーブルの中に、varchar(3000),varchar(6000)varchar(10000)、 と、それぞれの長さに対応したカラムを作成して、記事の長さによって」、格納場所を分けるべきでしょうか?。 あるいは、テーブル毎分けてしまったほうがよいのでしょうか?。 それとも、他になにか方法があったりするのでしょうか?。 varchar(10000)や、varchar(5000)という単位を指定することも、 text型を使うことも、否定的な意見が沢山あるようで、 かといって、2000~10000文字の記事をランダムに投稿する場合はどうする・。 といった、具体的な答えを探すこともできませんでした。 2000~10000文字の記事を、毎日ランダムに格納することを想定した場合。 varchar型、text型、カラムを分けて作るか、テーブルは分けるかどうか、 アクセス(表示)速度や、今後の管理のし易さ等も踏まえて、 適切な方法をご存知の型がいらっしゃいましたら、 是非ともご回答宜しくお願い致します。 //以下は補足です 文章を入力、送信したら、タグの挿入、テンプレートとの結合etc・・、 HTMLページを自動で生成する、といった入力フォームを作成したので、 DBはどのように運用するか、迷っている状態です。
回答: > > まず、人気のブログサイト等を調べてみると、文字数が2000文字程度だったり、 > > 5000文字、そして、10000文字程度なんていうのも、ザラにあるようでした、 > > > 無限と言う設定は実際は存在しないので(HDDやメモリなどハード的な理由で制限が必ずかかる。)作成するシステム仕様にあったDB設計をする必要があると思いますよ。 シェアが多いwordpressを参考にするとbestではなくてもbetterになるかと。 ちなみに、記事はtextを使用しているようです。 ``` MariaDB [hogehoge]> desc wp_posts; +-----------------------+---------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------------+---------------------+------+-----+---------------------+----------------+ | ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | post_author | bigint(20) unsigned | NO | MUL | 0 | | | post_date | datetime | NO | | 0000-00-00 00:00:00 | | | post_date_gmt | datetime | NO | | 0000-00-00 00:00:00 | | | post_content | longtext | NO | | NULL | | | post_title | text | NO | | NULL | | | post_excerpt | text | NO | | NULL | | | post_status | varchar(20) | NO | | publish | | | comment_status | varchar(20) | NO | | open | | | ping_status | varchar(20) | NO | | open | | ```