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はどのように運用するか、迷っている状態です。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+5
まず、「カラムやテーブルを分けて作る」という選択肢は、よほど特殊な事情がない限り、いちばんありえない範疇のものです。同じ意味合いのものを別な列に分けて入れてしまえば、あとあと処理が煩雑になるだけで、きわめてハンドリングしづらいデータベースとなります。
そして、MySQLでInnoDBを使う場合(最近はデフォルトでInnoDBになっています)は、VARCHAR
でもTEXT
でも、保存した分以上の容量は取りません。
- 65536文字以上になる場合は
VARCHAR
にできないので、MEDIUMTEXT
しか選択肢がありません。 - それ以下でも、MySQLのバージョンや設定によっては、
TEXT
の中身を除いて1行あたり65536バイトまでという制限があるので、VARCHAR
では入らないことがあります。
varchar(10000)や、varchar(5000)という単位を指定することも、
text型を使うことも、否定的な意見が沢山あるようで、
こちらですが、どのような理由での意見なのかをよく確認しましょう。たとえば「MYISAMの特性」であればInnoDBを使う分には無関係ですし、「TEXT
にはインデックスを付けるのに手間がかかる」というのも、記事本文に対して先頭一致のインデックスは通常付与しないので、気にしなくて構いません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
+2
まず、人気のブログサイト等を調べてみると、文字数が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 | |
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
MySQLについて参考にさせてもらっているサイトはこちらですね。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
今だから言える、
「どうすれば適切ですか?」じゃなく、「おまえがどうしたいか?」だけどねー!
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 90.87%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
2018/07/16 08:04
複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。