これは実際のデザイン(私がそれを理解した方法)の問題だとは思わない。
各ユーザーは一意のIDと名前を持ち、名前を照会してIDとともにデータベースから名前を戻します。その人物へのリンクは、それが常に同じ[...]?profile = 12345678のように見えるので、IDから単純に構築されます。
メンバーと「タグ付けされたもの」の間の結合は、単純な結合テーブルです。私はパフォーマンスを向上させる可能性があるが、残りはむしろまっすぐに聞こえるので、それぞれのタグ付け可能なオブジェクト(「写真」、「メッセージ」など)ごとに1つの表を作成します。これらのリソースのそれぞれは、すでに一意の識別子(IDまたは他の代理キーのような)を持っているので、複数のタグは結合テーブル内で問題ありません(したがって、ユーザー123はメッセージ234および235にあり、ユーザー456もメッセージ235にあります)。
どのようにユーザーが投稿にあるのかを見つける方法:これはサーバー側の問題です。メッセージがサーバに送られると、それを処理してユーザ名をユーザへのリンクに変換する必要があります。 Facebookはメッセージの編集を許可していないので、プレーンなユーザ名を編集することが重要でないため、単純にユーザへのリンクで置き換えることができます。もう一つの可能性は、メッセージの中に "@"を置き、投稿が表示されるたびに解析することです。これはより複雑でオーバーヘッドが増えますが、データベース内にHTMLはありません。
同じメッセージ内の複数のタグはどうですか。郵便の人名はどこにあるのですか? – sethvargo
私の編集内容をご覧ください。 – DrColossos