我有4种类型的用户,都有具体的数据,但他们也分享COMMUN数据,如username
,password
..关系数据库设计多种用户类型
我首先想到的是创建一个主users
表user_type
栏。然后,当查询用户数据时,我可以先选择他们的user_type
,然后根据output
运行不同的查询来获取“用户类型”特定数据。 我不喜欢这个,因为我希望我可以用一个查询并理想地使用外键来获取所有用户相关的数据。
第二个想法是在users
表中没有user_type
列,而是使用来自特定用户类型表的外键将指向表的主行。 我喜欢这个好一点,但我想我将不得不运行N个查询,其中N是每次我需要抓取用户数据时的用户类型数量。
还有其他的选择吗?在这种情况下,最好的做法是什么?
非常感谢
如果我理解你,你只需要在你的SQL语句中使用JOIN子句。类似于'SELECT * FROM users U LEFT JOIN user_details D ON U.id = D.user_id WHERE U.id =?' –
用户可以一次有多种类型吗? –
@Catcall否在这种情况下,用户只能有一种类型,但我很好奇在这两种情况下有什么可能性 – silkAdmin