我目前选择两种不同的数据库设计。一个复杂其中分离数据更好,那么更简单的一个。更复杂的设计将需要更多复杂查询,而更简单一个将有几个null
字段。(有点)复杂的数据库结构与简单 - 空字段
考虑下面的例子:
复杂:
简单:
上述例子用于分离定期用户和Facebook用户(他们最终将访问相同的数据,但以不同的方式登录)。在第一个例子中,数据是分开的。第二个例子是简单的方法,但每行至少有一个null
字段。如果它是普通用户,则facebookUserId
将为空,而如果它是Facebook用户,则username
和password
将为空。我的问题是:什么是首选?优点缺点?随着时间的推移,哪一个最容易维护?
我更关心为什么要将会话密钥存储在用户表中。 – RedFilter
@RedFilter为什么不呢?它是在登录时生成的,以验证用户身份,无论是Facebook用户还是普通用户。对不起,如果我错过了这一点,餐桌设计不是我的专长;-)。 – Zar
如果用户想要从两个不同的设备/浏览器同时登录,该怎么办? – RedFilter