6

私は自分のウェブサイトの好みのシステムについて考えていました、そして私はそれにアプローチするための最良の方法を決定することができません。私はMySQLを使用していますが、現在、テキスト、写真、ビデオなどの投稿用のアクティビティテーブルと、コメント用のコメントテーブルがあります。コメントとアクティビティの投稿の両方を高く評価できますが、同様のテーブルの列をどのように処理すればよいですか?より一貫性のある設計のために、スキーマ全体をまとめて変更するという提案を歓迎します。

4

1 に答える 1

17

likes次のような構造で呼び出されるテーブルを作成するだけです。

`id` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(11) NOT NULL,
`post_type` varchar(10) NOT NULL,
`post_id` int(11) NOT NULL,
`date` datetime NOT NULL,
 PRIMARY KEY (`id`)

次に、誰かがアクティビティの投稿を気に入ったときはいつでも、そのユーザーのID、post_typeasアクティビティを挿入し、それからpost_id投稿IDになります(明らかに)。

誰かがコメントを気に入った場合、あなたは同じことをしますが、代わりに投稿タイプにコメントを入れます。

次に、アクティビティ投稿のいいねを取得するには:

SELECT * FROM `likes` WHERE post_id = 'id' AND post_type = 'activity'

'id'ID変数に置き換える必要があります。

コメントについても同じです(post_typeもちろん変更する必要がある場合を除きます)。

これがあなたのウェブサイトに似たようなシステムを作る方法についてのアイデアを得るのに役立つことを願っています:)

于 2012-08-08T02:06:28.820 に答える