これで、users テーブルができました。ユーザー名、電子メールなどを保存します。次に、user_settings テーブルがあります。timestamp_logged_in、profile_views などの標準的な列の代わりに、キーと値の組み合わせとして整理しました。たとえば、列は次のとおりです。
user_settings_ID user_ID 名前 値
サンプル レコードは次のようになります: 82 2 'timestamp_logged_in' '2009-10-10 02:23:53'
これにより、設定がもう少し透過的になります。新しいユーザー設定の種類を格納するために列が存在する必要はありません。これを行うと (すべての値が文字列として格納され、ミドルウェアで適切な型にキャストされます)、並べ替えが難しくなることが懸念されます。たとえば、最後にログインした順にユーザーのリストを取得したい場合、並べ替えには次のような SQL 呼び出しが必要になります。
SELECT user_ID FROM user.settings WHERE status='open' AND name='timestamp_logged_in' ORDER BY name
ただし、これは見つかったレコードを文字列としてソートすることになります。並べ替えアルゴリズム mysql が特定の値の型に基づいて実装されていることを確認する方法はありますか (たとえば、並べ替え列を文字列、整数、日時、タイムスタンプなどとして強制的に処理するようにするなど)?
どんな考えでも本当に感謝します。ありがとう。オリバー・ナサール