FacebookやGoogle+の共有ボタンやTwitterのリツイートと同様に、他のユーザーが投稿を共有できるようにする機能を実装したい。他のユーザーが投稿を共有できるようにするための最適なデータベース設計
2つの選択肢があります:
1)私はポストの複製コピーを作成し、オリジナルのポストIDを追跡し、これが共有ポストで明らかに列を持っているが。
2)投稿テーブルに投稿IDの外部キーである投稿IDを保存する別のテーブル共有投稿があります。プログラミングの観点で話す
基本的に私のポストに参加して、共有ポストテーブル
Post(post_id(PK), post_content, posted_by)
SharedPost(post_id(FK to Post.post_id), sharing_user, sharedfrom(in case someone shares from non owners profile))
別のテーブルにオリジナルのポストへのポインタを保持し、ユーザーと、共有のもので投稿を取得する必要があるとき、私は左を行います
私は第二の選択に賛成ですが、そこにいる専門家のアドバイスを知りたがっていますか?
私のwebappの1つのより多くの記事は、Facebookのサイズのツイートのサイズの行に多くなります。
あなたは新しい投稿を作成し、投稿内容にオリジナルの投稿へのハイパーリンクを追加し、このリンクが再生されたら、このリンクが指しているオリジナルのコンテンツを表示すると言います。右? – codecool
これは1つのオプションです。もう1つは、リンクを使用して(後続/クリックして)元の投稿の準備ビューに移動する必要があるということです。 – jheep
ユーザーがリンクをたどったときに余分なdbクエリを取ることはありませんか?オリジナルの投稿コンテンツを持ってくると、自己参加になります。 – codecool