独自のソーシャル ネットワークをゼロから構築することに決めました。これは興味深い演習になると気づき、Drupal Commons のようなすぐに使えるソリューションをカスタマイズする方法を学ぶのに多くの時間を費やしたくなかったからです。これまでのところ、基本的なログイン/ログアウト機能、新しいユーザーの作成、アバターのアップロードなどをうまく行っています。また、ユーザーによる投稿を保持する MySQL データベース テーブルもあります。
テーブルで基本的なクエリを実行すると、投稿、その ID、およびそれを作成したユーザー (userID はテーブルposts
からの外部キー) を簡単に取得できます。しかし、私はテーブルusers
を実装したいと決めました. このようにして、投稿を日付や投稿 ID だけでなく、トピック別に並べ替えることができます。threads
threadID
ただし、新しいスレッドを投稿するロジックがわかりません。私のデータベースは、ユーザー、投稿、スレッドのテーブルで構成されています。データベースでは、これらは次のように構成されています (関連するフィールドのみが示されています)。
Users Posts Threads
----- ----- -------
userID (pk) postID (pk) threadID (pk)
userID (fk)
threadID (fk)
上記のフォーマットはプレビューでは問題ないように見えますが、投稿後に完全に不安定になったら申し訳ありません
ユーザーの作成は投稿の作成とは別であるuserID
ため、新しい投稿を作成するときに、すでに作成済みで利用可能です。その後、投稿は独自の投稿 ID を自動生成します。私が先に進むのを妨げているのは、同じトランザクションで新しいトランザクションを作成して、お互いを適切に認識できるようにする方法がよくわからないことthreadID
です postID
。新しいスレッド ID が必要になるのは、誰かが新しいスレッドを開始した場合だけです。返信は既存のスレッド ID を使用し、一意の postID を取得します。
誰かがこのトランザクションの基本的なロジックに光を当てることができれば、本当に感謝しています. 過去にリレーショナル データベースをあまり扱ったことがなかったので、これは役立つことを学ぶ機会だと思います。