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

このデータをMySQLスキーマに保存する適切な方法は何ですか?

    映画ごとに1行ではなく、属性値テーブルを使用します。次に、ユーザーを指定するフィールドをこれに追加します。これは0になります。 元のデフォルトの場合。したがって、テーブルは次のようになります。

    MovieID UserID  Attribute   Value
    1       0       Title       12 Monkeys
    1       0       Format      DVD
    1       1       Title       Twelve Monkeys
    

    次に、タイトルを取得するためのクエリは次のようになります。

    SELECT MovieID, IFNULL(my.Value, default.Value) AS title
    FROM movies AS default
    LEFT JOIN movies AS my ON default.MovieID = my.MovieID AND my.Attribute = 'Title' AND my.userID = @user
    WHERE default.UserID = 0 AND default.Attribute = 'Title'
    

    一部のデータベース設計者は、AttributeIDを使用することも好みます。 属性名としての文字列ではなく、属性名をIDにマップする別のテーブル。



    1. MariaDBで省略記号を使用してテキストを切り捨てる方法

    2. 最初にアルファベットで並べ替え、次に番号で並べ替えます

    3. データベースパッチセットを取得する

    4. mysqlの結果をカテゴリ別にグループ化し、各カテゴリの下のグループに表示します