我目前正在两种不同的数据库设计之间进行选择。一种复杂的可以更好地分离数据,而不是更简单的一种。更复杂的设计需要更复杂的查询,而更简单的设计需要几个null
字段。
考虑以下示例:
复杂:
更简单:
上述示例用于区分普通用户和 Facebook 用户(他们最终将访问相同的数据,但登录方式不同)。在第一个示例中,数据明显分开。第二个例子更简单,但每行至少有一个null
字段。facebookUserId
如果是普通用户,则为空,而username
如果password
是 Facebook 用户,则为空。
我的问题是:什么是首选?优点缺点?随着时间的推移,哪一个最容易维护?