两个单独的表和一个带列的表之间的区别

时间:2019-11-24 13:17:43

标签: mysql database database-design database-schema

我有<div class="form-group"> Gender: <select class="form-control" name="gender"> <?php if ($user['gender'] == 'female' ) { ?> <option value="female" selected>Female</option> <option value="male">Male</option> <option value="none">Prefer not to say</option> <?php } if ($user['gender'] == 'male' ) { ?> <option value="female">Female</option> <option value="male" selected>Male</option> <option value="none">Prefer not to say</option> <?php } if ($user['gender'] == 'none') { ?> <option value="female">Female</option> <option value="male">Male</option> <option value="none" selected>Prefer not to say</option> <?php } ?> </select> </div> users。这是一个普通人和医生都可以使用的应用程序。我不确定该使用哪种方式来设置数据库。

  1. 两个表-doctorsusers
  2. 一个表,额外的列-doctors表与列users

哪个是最好的方法?两者的优缺点是什么?

2 个答案:

答案 0 :(得分:1)

对我来说,保留单独的表是件好事,尤其是当您使用户表尽可能基本(使用用户名和密码)时。这样一来,您知道即使需求在将来发生变化,并且您需要在其他用户字段中添加其他用户类型,也不必担心代码的其他部分。我只是在考虑未来的变化或增加。医生是抽象的。再次,当您必须对它们进行分类时(例如,按其专业分类),这可能是将来的问题。

只有我的两分钱。

答案 1 :(得分:0)

2个表是最好的方法。尽管不是您建议的2个表。

如果从根本上分析一下自己的情况,则您有用户,并且他们属于2组中的1组(一般公众和医生)。

这是标准的用户组情况,因此使用1个表存储用户特定的数据并引用user_group表(即用户属于组)是一个很好的解决方案。

这还允许您以后添加组-肾病患者,肾病医生,心脏疾病患者,心脏疾病医生...

使用带有用户和用户组的设置通常是一个好方法。