如何将数据或更改架构添加到生产数据库

时间:2016-10-10 12:43:07

标签: sql database database-design relational-database

我是处理数据库的新手,我想确保了解在数据库中添加或删除数据的最佳方法,而不会弄乱任何相关数据。

以下是我正在使用的方案:

我有一个标签表,带有一个身份标识列。可以通过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     |
+----+------------------+---------------+-----------------+--------------+--------+----------+

1 个答案:

答案 0 :(得分:3)

您使用的术语“顶部”和“底部”并不真正适用。 “Albany”不在表的“顶部” - 它只是在查询表时看到的特定视图的顶部,而没有指定有意义的排序顺序。它默认为基于Id或内部ROWID参数的排序顺序,这不是逻辑显示此数据的方式。

表格中的数据并非按字面排序。如果您想查看按类别组织的标记,只需按DisplayCategory(之后可能按DisplayOrder)对您的查询进行排序,您就会看到您的数据已正确组织。您甚至可以创建一个持久性视图,以便您方便地对其进行排序。