我需要存储一个元信息——这些信息实际上根本不会影响系统,实际上只是提供信息的目的。
例如 - 如果我有多个应用程序:ios 应用程序、android 应用程序、移动网络、桌面网络 - 登录用户可以在其中创建内容并且内容将跨应用程序显示。我在想存储从哪里创建的内容可能很有用。
所以如果我在数据库中有:
- 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)
哪种方法更可取?优点缺点?
无论如何,这里的信息确实不会影响应用程序。在某种程度上,它只是为了统计信息的目的,所以如果我们好奇地回顾一下,我们可以回答“大部分内容来自哪里”这个问题