2010-12-30 9 views
0

私は、ユーザーが@(または別の特殊文字)を入力すると、ユーザーがユーザー名を選択して投稿に「タグ付け」できる、Facebook/Twitterと同様のシステムを実装しようと考えています。私は、このような振る舞いのためにjQueryを書く方法を知っていますが、このような振る舞いのために実際のデータ(基本)構造はどのように見えますか?FacebookやTwitterのような@タグ付けのためのデータ構造とアプローチ?

リンクがデータベースに直接格納されていることは間違いありません。複数のものにタグを付けることができるので、この構造はどのように見えますか?

答えて

0

これは実際のデザイン(私がそれを理解した方法)の問題だとは思わない。

各ユーザーは一意のIDと名前を持ち、名前を照会してIDとともにデータベースから名前を戻します。その人物へのリンクは、それが常に同じ[...]?profile = 12345678のように見えるので、IDから単純に構築されます。

メンバーと「タグ付けされたもの」の間の結合は、単純な結合テーブルです。私はパフォーマンスを向上させる可能性があるが、残りはむしろまっすぐに聞こえるので、それぞれのタグ付け可能なオブジェクト(「写真」、「メッセージ」など)ごとに1つの表を作成します。これらのリソースのそれぞれは、すでに一意の識別子(IDまたは他の代理キーのような)を持っているので、複数のタグは結合テーブル内で問題ありません(したがって、ユーザー123はメッセージ234および235にあり、ユーザー456もメッセージ235にあります)。

どのようにユーザーが投稿にあるのかを見つける方法:これはサーバー側の問題です。メッセージがサーバに送られると、それを処理してユーザ名をユーザへのリンクに変換する必要があります。 Facebookはメッセージの編集を許可していないので、プレーンなユーザ名を編集することが重要でないため、単純にユーザへのリンクで置き換えることができます。もう一つの可能​​性は、メッセージの中に "@"を置き、投稿が表示されるたびに解析することです。これはより複雑でオーバーヘッドが増えますが、データベース内にHTMLはありません。

+0

同じメッセージ内の複数のタグはどうですか。郵便の人名はどこにあるのですか? – sethvargo

+0

私の編集内容をご覧ください。 – DrColossos

関連する問題