我不确定完全如何将这个问题说出来,所以我会解释我在想什么。我以前有设计数据库的经验,但实际上还没有决定我想如何实现这个或者之前运行过这个。我会解释我在想什么作为一种显示方式,我已经想到了这一点...数据库设计:多个相同类型的项目
我创建了一个数据库,将存储用户的信息,像一个简历(这是一个副项目为一群大学生)。我遇到的问题是如何处理存储大量技术技能的问题,可能是每个用户20+以上的顺序以及他们的熟练程度
想法一:一个巨大的表格,包含TechSkill1列 - > 20.随着他们的熟练程度。使用用户ID作为FK与所有这些关联。 优点:最简单的工具,最简单的前端。 缺点:限于20个技能,很多潜在的空值,过大的尺寸
想法二:一个大文本输入的表格,所有技能都在一个文本对象中,用逗号或| |等一些字符分隔。另一个精通专栏也以同样的方式划定界限。再次,USERID作为FK。 优点:易于实现,小桌子大小,易于在前端获得信息 缺点:浪费大量空白空间的可能性,需要在商店前面进行更多的编码,然后再进行检索。
想法三:小桌子的技巧和熟练的专栏。然后创建多个行来关联每个USERID 优点:最小的表和最干净。节省最多的空间 缺点:前端实现将很有趣,因为在如何处理无限数量的条目的多个领域(不是我的东西,但我不想为前端家伙创造太多问题)
这些是我的三个想法,我不完全确定什么是最好的......我问你们。所有的意见将不胜感激。
谢谢!实现这个数据库级别
-Jabsy
所以这个实现我的SQL从我Skill_prof表基于我user_ID的选择,然后使用从返回映射到我的能力和相应的技能,因为他们都将在同一个元组? 编辑:另外,我正在使用MYSQL – Jabsy 2011-02-24 08:55:43
您可以使用数据库加入,并通过1查询选择它到数据库。例如,如果你想具体的用户和他的技术名称和熟练的名字,你会用:SELECT users.name,skills.name,prof.name从skill_prof SP内部联接用户us.id = fk_userid内部联接上sp.fk_skill_id =技能技巧.id内部连接熟练prof.id = sp.fk_proficiencyid prof.id其中users.id =您的ID请选择 – 2011-02-24 09:12:26
非常感谢! – Jabsy 2011-02-24 09:19:59