2012-09-10 8 views
8

既存のLAMPサイトの1つに非常に単純なブログ機能を追加したいと思います。ユーザーの既存のプロフィールに結び付けられ、ブログの各投稿のタイトルと本文を入力するだけで、投稿時に自動的に日付が設定されます。彼らは、いつでもブログ投稿とタイトルを編集して削除することが許されます。ブログは、最も新しいものから最も古いもの、おそらくページの20の投稿まで、その上に適切なページ番号を付けて表示されます。他のユーザーは、各ブログにコメントを残すことができます。ブログの所有者は削除することが許可されていますが、事前調整はできません。それは基本的にそれです。私が言ったように、非常に簡単です。MySQLで非常に単純なブログのテーブルを構成するには?

このためにMySQLテーブルをどのように構成する必要がありますか?

私は、ブログの投稿とコメントがあるので、それぞれ別のテーブルが必要だと思いますが、それは間違いありませんか?ただし、各テーブルで必要な列、使用するデータ構造、2つのテーブル(たとえば外部キー)をどのようにリンクする必要がありますか?

私はこのようなチュートリアルを見つけることができませんでした。私が探しているのは、実際にユーザーに最も単純なバージョンのブログを提供することです。タグなし、モデレートなし、イメージなし、ファンシーな書式なしなど。単純なダイアリータイプの純粋なテキストのブログで、他のユーザーがコメントしています。私はあなたが以下の表

Posts 
    PostID (identity) 
    PostTitle (varchar) 
    PostDate (datetime) 
    Deleted (int) 
    OwnerID (int FK to Users) 

PostDetails 
    PostDetailID (identity) 
    PostID (FK to Posts) 
    Sequence (int) -> for long posts you order by this 
    PostText (text) 

Comments 
    CommentID (identity) 
    Comment (text) 
    CommenterID (int FK to Users) 
    CommentDate (datetime) 
    Deleted (int) 

Users 
    UserID (identity) 
    UserNAme (varchar) 
    UserEmail (varchar) 
    CreatedDate (datetime) 
    Active (int) 

現在時刻までのすべての日時フィールドのデフォルトを必要とするでしょうね

+0

を助け

希望は宿題 のように見えるあなたがしようとした、これまで実施してきたものを伝えますか? – djadmin

+3

@djadmin:Stack Overflowに関する私の歴史を見てください。私は確かに学生ではない。これは本番サイトのためだと私はまだ何も実装しようとしていません。私はライブサイトで「試行錯誤」をしません。まず何かを実装する最良の方法を見つけ出し、それを実装します。それは私がここで理解しようとしているものです。 – ProgrammerGirl

+0

現存するブログエンジンがどのように機能するかを見てください。見るべき例はたくさんあります。 – ceejayoz

答えて

19

、すべてのIDフィールドがPK あるポストの詳細にシーケンスフィールドは、あなたが使用していない場合にはそこにありますテキストタイプとvarcharと一緒にいくつかのレコードに投稿を分割することができます。

これ以外にも、私はオープンソースのブログシステムを見て、彼らが何をしているかを見て、私が必要としないものを差し引いています。

+0

面白い、ありがとう。列を「投稿」表と組み合わせるのではなく、別々の「PostDetails」表を作成することを提案した理由を説明してください。 – ProgrammerGirl

+1

2つの理由:最初はマスター/詳細関係を作るためにデータをデカップリングしています(この方法では、タイトルをほしいと思うときに非常に長い投稿をする必要はありません)。そして2番目は、フィールドの容量を超えて(おそらく、テキストフィールドの問題ではないが、もしあなたがvarcharに行くとすれば、行ごとに固定された最大長があることを意味する)。全体としては、できるだけ多くの情報を分離することが好むだけの優先事項です。 –

+0

回答のPostDetailsテーブルで使用したSequence(int)列の使い方について説明できますか? Sequence列は何のために使用されますか? – bobble14988

関連する問題