4

私は Web 開発に不慣れで、ピラミッド型のサイトを完成させようとしていますが、ある種のメッセージ サービスが必要で、どこから始めればよいかわかりません。

サイトからのアラートがユーザーに送信される Quora や stackoverflow のようなものが必要です (そして、相互にメッセージを送ることができるかもしれません)。これを行うには何が必要ですか? 関連するすべてのことを理解するのに役立つライブラリまたはチュートリアルはありますか?それとも、単にメッセージのデータ モデルを作成し、データベースにクエリを実行するだけですか? ユーザーが他のユーザーのアクティビティを追跡し、相互に通信できるようにしたいのですが、電子メールを再作成したくありません。

ピラミッドで機能する、これを行うための適切で簡単な方法はありますか?

更新: 私はいくつかのリソースを見つけました。より一般的に受け入れられている方法があるかどうかを学ぶことは素晴らしいことですが、この構造を作成して x 秒ごとに新しいメッセージをクエリすることができると考えています。

CREATE TABLE `messages` (
`message_id` int(11) NOT NULL auto_increment,
`from_user` varchar(65) character set latin1 collate latin1_general_ci NOT NULL,
`to_user` varchar(65) character set latin1 collate latin1_general_ci NOT NULL,
`message_title` varchar(65) NOT NULL,
`message_contents` longtext NOT NULL,
`message_read` int(11) NOT NULL default '0',
PRIMARY KEY (`message_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21;
4

1 に答える 1

2

基本的な考え方がわかります。メッセージを保存するためのテーブルが必要です。ブロードキャストメッセージを処理しない限り、1つのテーブルで十分です。

あなたが提案した構造についてのいくつかのコメント:

  • まだわからない場合は、sqlalchemyをご覧ください。これはデータベースを処理するための優れたツールであり、ピラミッドで一般的に使用されています。
  • スペースの浪費を避けるために、名前を保存する代わりにfrom_user、ユーザーテーブルのキーを使用する必要があります。to_user
  • アプリケーションが複数のリクエストを処理することになっている場合は、実行するクエリに応じて、いくつかの列のインデックス作成を検討する必要があります。一部のユーザーからのすべてのメッセージを頻繁にクエリする場合は、にインデックスを付けfrom_userます。一部のユーザーからのすべての未読メッセージをクエリする場合は、from_userand message_readsqlalchemyで行う方法)で複合インデックスを使用します。それはあなたの要求を大いにスピードアップするはずです。
于 2012-11-08T10:09:32.490 に答える