メタ情報を保存する必要があります。この情報は、実際にはシステムにまったく影響を与えず、情報提供のみを目的としています。
たとえば、iOS アプリ、Android アプリ、モバイル Web、デスクトップ Web などの複数のアプリケーションがある場合、ログインしたユーザーがコンテンツを作成でき、そのコンテンツがアプリケーション間で表示されます。そのコンテンツがどこから作成されたのかを保存するのに役立つかもしれないと考えていました。
したがって、データベースにある場合:
- USER table (user_id, username, password, email)
- CONTENT table (content_id, user_id, content)
コンテンツの出所に関する情報を追加したいので、コンテンツ テーブルを次のように変更します。
- CONTENT table (content_id, user_id, content, source)
ソースの保存方法を教えてください。
それは単なる列挙型クラスである必要があります(私はJavaを使用しています)
public enum Source{ IOS_APP, ANDROID_APP, MOBILE_WEB, DESKTOP_WEB }
単純にデータベースに文字列 (varchar) として保存しますか?
または、実際に追加のテーブルを作成して外部キー関係を使用する必要があります
SOURCE table (source_id, source_description) CONTENT table (content_id, user_id, content, source_id)
どちらのアプローチがより望ましいでしょうか? 長所短所?
とにかく、ここの情報は実際にはアプリケーションに影響しません。ある意味では、これは統計情報の提供のみを目的としているため、好奇心のために振り返ってみると、「ほとんどのコンテンツはどこから来たのか」という質問に答えることができます。