ホームページ >データベース >mysql チュートリアル >ネイティブ配列サポートなしで MySQL に配列のようなデータを効率的に保存および取得するにはどうすればよいですか?

ネイティブ配列サポートなしで MySQL に配列のようなデータを効率的に保存および取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-06 12:53:12827ブラウズ

How Can I Efficiently Store and Retrieve Array-like Data in MySQL Without Native Array Support?

MySQL への配列の保存

MySQL のようなリレーショナル データベース管理システムでは、配列はネイティブにサポートされていません。したがって、配列を MySQL テーブルに保存することには課題があります。

問題ステートメント:

MySQL の 2 つのテーブルを考えてみましょう:

  • テーブル人:

    • id (整数、主キー)
    • name (文字列)
    • fruits (文字列または文字列の配列)
  • テーブルフルーツ:

    • フルーツ名 (文字列、主キー)
    • 色 (文字列)
    • 価格 (整数)

目標は、Person テーブルの果物の列を設計して、 Fruit テーブルの Fruit_name 列の値に対応する文字列の配列を格納します。

解決策:

この問題を解決するには、リレーショナル モデリング手法を採用する必要があります。 「多対多の関係」と呼ばれます。この手法には、「結合テーブル」または「関連付けテーブル」と呼ばれる中間テーブルを導入して 2 つのメイン テーブルをリンクすることが含まれます。

この場合、次の列を持つ Person_Fruit テーブルを作成できます:

  • person_id (個人の ID への外部キー)
  • fruit_name (個人の ID への外部キー) Fruit_name (Fruit)

このテーブルは、各人物とその人物が関連付けられている果物をリンクします。

データを取得する SQL クエリ:

関連する結果を含むテーブルからデータを取得するには、次のコマンドを使用できます。クエリ:

SELECT p.*, f.*
FROM Person p
INNER JOIN Person_Fruit pf ON pf.person_id = p.id
INNER JOIN Fruit f ON f.fruit_name = pf.fruit_name;

結論:

多対多のリレーションシップと中間テーブルを使用することで、たとえこれらはネイティブにはサポートされていません。この手法により、データの整合性を維持しながら、効率的なデータの取得とメンテナンスが可能になります。

以上がネイティブ配列サポートなしで MySQL に配列のようなデータを効率的に保存および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。