对不太好的标题感到抱歉,但我很好奇人们如何在SQL中构建一个类别表,给出以下示例
两栏: ID, CATEGORY
您可以使用以下哪种方式命名列?
ID, CATEGORY
ID, 说明
CAT_ID, CAT_DESC
还是其他什么?只是想知道其他人做了什么。对不起,如果这不是很清楚。我希望值得回答,因为反馈会很棒。
答案 0 :(得分:3)
这个问题非常主观。与大多数编程问题一样,有一百万种正确的方法可以做。这完全取决于您的个人偏好以及您认为最简单的方式。您需要考虑哪些类别的信息是必要的,以及您要分类的其他表。您肯定需要在表中使用主键列,因为我假设您要在另一个列上加入类别表。但除此之外,您可以考虑一个名为title或者其他内容的短文本字段,以及一个名为description的长文本字段或类似的东西。如果您要允许用户通过webui创建这些对象,则可能需要包含user_id列。再一次,想想你真正需要这张桌子的东西,并根据你的需要进行设计。
-C
答案 1 :(得分:2)
我假设你想要一个带有自动生成ID和相应类别名称的类别表。如果是这种情况,我会将表命名为CATEGORY,并具有字段ID和NAME。
答案 2 :(得分:2)
答案 3 :(得分:1)
这完全取决于您和您的项目所需。你可能想要:
取决于您的项目及其要求。这可以是您想要的简单,也可以是复杂的。其他领域可能包括:
答案 4 :(得分:1)
我称之为“Category_ID”和“类别”。
那样
答案 5 :(得分:1)
我将表格称为“类别”,列为“id”,“name”和“description”。 “category”是名称/描述列的错误名称,因为它并没有真正告诉你它是什么。名称和描述实际上是两个不同的东西,因此是两列。如果您只想要名称,可以留下说明。
“id”vs“category_id”更加主观,只是保持一致。
答案 6 :(得分:1)
正如其他人所说,这是非常主观的,并且没有绝对的权利(据说,肯定可能有一种错误的方法,或者至少是一些不利的方式)。
就个人而言,我会创建一个名为“category”的表,其中包含字段id_cate,name_cate和description_cate(或者类似的东西,但是你得到了基本的想法)。将每个名称与“_cate”连接起来的原因是,当你在一个字段具有相同名称的查询中将表链接在一起时,你现在将通过它的扩展名来表示它所属的表,从而无需进行
select * from Table1Name inner join Table2Name on Table1Name.ID = Table2Name.ID
你只需写:
select * from Table1Name inner join Table2Name on id_tab1 = id_tab2
正如我所说并且其他人已经说过,没有最佳方法可以做到这一点。每个人都只是开发出一种他们最熟悉并且看起来最具可读性的风格/技术。只要你对自己的风格保持一致和舒适,那就无所谓了。
答案 7 :(得分:0)
我个人不喜欢“CAT_ID”“CAT_DESC”的命名法,我更喜欢“DESCRIPTION”和“ID”。
但是,这样做的缺点是,如果要对具有相同列名的表进行连接,则在投影中,必须重命名列以指示哪个属性来自哪个基础表。
“CAT_ID”等方法的缺点是你可以提出一些没有简单单义的名字。
您对表的使用以及查询/联接/投影的类型应该可以帮助您确定哪个最适合您正在做的事情。