sql >> データベース >  >> RDS >> Mysql

チェックボックス値をMySQLデータベースに保存する最良の方法は何ですか?

    プロパティとアメニティの間には多対多の関係があります。これをモデル化するには、可変数の列ではなく、個別のテーブルが必要です。

    プロパティを格納するテーブルが1つあります。

    INSERT INTO property (id, address, square_footage...) VALUES (111, '123 Main St', 1234...)
    

    考えられるすべての設備を格納するテーブルが1つあります。

    INSERT INTO amenities (id, type, description) VALUES (222, 'Unit Features', 'Air Conditioning');
    

    プロパティが持つアメニティごとに、次の2つに関連する1つの行をテーブルに挿入します。

    INSERT INTO property_amenitities (property_id, amenity_id) VALUES (111, 222);
    

    特定の物件のアメニティを知りたい場合は、SELECT そのプロパティのキーのこのテーブルのすべての行。すべてのアメニティのチェックボックスを印刷する場合は、SELECT amenitiesから テーブルを作成し、LEFT OUTER JOINを実行します property_amenitiesへ テーブル。 property_amenitiesからのnull値を持つ行 表はチェックされていないボックスです。

    関連資料 。リレーショナルデータベースが廃業する前に、地元のボーダーから本を入手する必要があります:)



    1. OracleのCheckステートメントでのサブクエリの使用

    2. スーパーユーザーCREATEEXTENSIONhstoreのみが作成でき、Herokuでは作成できないのはなぜですか?

    3. PostgreSQLで文字列をタイムスタンプに変換する方法

    4. MySQL:レコード数のパーセンテージで制限しますか?