我是处理数据库的新手,我想确保了解在数据库中添加或删除数据的最佳方法,而不会弄乱任何相关数据。
以下是我正在使用的方案:
我有一个标签表,带有一个身份标识列。可以通过Web应用程序选择标签,以对用户提交的故事进行分类。数据库第一次播种时;像标签一样按顺序播种。你可以看到所有校区(城市)都是1-4,大学(科目)是5-7,人口是8-11。
如果此数据库处于生产阶段并且客户端想要添加新的Campus(City)标记,那么最好的方法是什么?
所有其他城市标签都排在顶部,似乎唯一的选择是在表格的底部插入任何新标签,他们最终将采取任何下一个ID可用。我认为这很好,因为显示类别列将允许我们知道这些新标签实际属于哪些类别。
这是典型的吗?是否有更好的方法来设置数据库或处理这种情况,以便一切都更有条理?
谢谢
+----+------------------+---------------+-----------------+--------------+--------+----------+
| ID | DisplayName | DisplayDetail | DisplayCategory | DisplayOrder | Active | ParentID |
+----+------------------+---------------+-----------------+--------------+--------+----------+
| 1 | Albany | NULL | 1 | 0 | 1 | NULL |
| 2 | Buffalo | NULL | 1 | 1 | 1 | NULL |
| 3 | New York City | NULL | 1 | 2 | 1 | NULL |
| 4 | Syracuse | NULL | 1 | 3 | 1 | NULL |
| 5 | Business | NULL | 2 | 0 | 1 | NULL |
| 6 | Dentistry | NULL | 2 | 1 | 1 | NULL |
| 7 | Law | NULL | 2 | 2 | 1 | NULL |
| 8 | Student-Athletes | NULL | 3 | 0 | 1 | NULL |
| 9 | Alumni | NULL | 3 | 1 | 1 | NULL |
| 10 | Faculty | NULL | 3 | 2 | 1 | NULL |
| 11 | Staff | NULL | 3 | 3 | 1 | NULL |
+----+------------------+---------------+-----------------+--------------+--------+----------+
答案 0 :(得分:3)
您使用的术语“顶部”和“底部”并不真正适用。 “Albany”不在表的“顶部” - 它只是在查询表时看到的特定视图的顶部,而没有指定有意义的排序顺序。它默认为基于Id或内部ROWID参数的排序顺序,这不是逻辑显示此数据的方式。
表格中的数据并非按字面排序。如果您想查看按类别组织的标记,只需按DisplayCategory
(之后可能按DisplayOrder
)对您的查询进行排序,您就会看到您的数据已正确组织。您甚至可以创建一个持久性视图,以便您方便地对其进行排序。