基本的な疑問はずっとありましたが、それでも解決したいと思っています。 mysql はデータベース ストレージを読み取ります。 。 。ダン ダン ダン
この投稿は xianglei1130 によって最終編集されました (2013-03-04 14:50:06)
私は長い間この問題を抱えていましたが、今日はとても興奮しているので、皆さんとこの問題について話し合うために投稿します。
自分のスキルが凡庸であることは分かっているので、文句は言わないでください、エビ。
つまり、さまざまなフィールドを持つ合計レコード テーブル A がある場合、sid title content link....
次に、この個人が所有するテーブル A のデータを記録するためのフィールド id name sid (テーブル A の sid) を持つ個人レコード テーブル、テーブル B があります。
ここで問題が発生します。テーブル B「Zhang San」にテーブル A に 10 個のレコードがある場合、10 個の sid をシンボルと組み合わせてテーブル B の sid に格納します。それとも 10 個のレコードを生成してテーブル B に保存しますか?
取得を考えると、最初の方法は当然、explode を使用して B テーブルの sid を分割し、次に A テーブルをループしてクエリしてデータを取得する方法です。 2 番目の方法は、ID のすべてのレコードを直接検索してループアウトすることです。
では、どの方法が良いのでしょうか?データベース プログラムのあらゆる側面から。どう説明していいか分かりませんが、アドバイスを頂ければ幸いです。 。 。
データベース
ストレージ
mysql
-----解決策--------------------------------1. シンボル (,) を組み合わせてテーブル B に SID を格納できます。クエリを実行する場合は、find_in_set(A.sid,B.sid)
この状況では、B.sid が十分に大きい必要がありますが、10 ではなく 1,000 または 10,000 の場合はどうなるでしょうか
2. 各 sid は B に格納できます。クエリの場合、A.sid=B.sid
ばかげているように見えますが、うまくいきます
3. 上記の解決策は、A.sid がパブリックであること、つまり複数のユーザーが同じ A.sid を所有できることを前提としています。例: 友達、フォロー
A.sid がユーザーに対して非公開である場合 (
の投稿など)
次に、所有権を記録するために uid フィールドを A に追加する必要があります
------解決策----- 2 番目の爆発は簡単です。3 番目の爆発では、多くの操作を自分で行う必要があります