Я новичок в работе с базами данных, и я хочу, чтобы я понял, как лучше всего добавлять или удалять данные из базы данных, не создавая беспорядка каких-либо связанных данных.Как добавить данные или изменить схему в производственную базу данных
Вот сценарий, я работаю с:
У меня есть Метки таблицы со столбцом идентификации ID. Метки могут быть выбраны через веб-приложение для категоризации историй, представленных пользователем. Когда база данных была впервые засеяна; как теги были высеяны в порядке вместе. Как вы можете видеть, все кампусы (города) были 1-4, Колледжи (предметы) составляют 5-7, а население - 8-11.
Если эта база данных находится в рабочем состоянии, и клиент хочет добавить новый тег Campus (City), что это лучший способ сделать это?
Все остальные теги города организованы сверху, кажется, что единственный вариант - вставить любые теги внизу таблицы, в результате чего они получат доступ к следующему идентификатору , Я полагаю, это прекрасно, потому что столбец «Категория отображения» позволит нам узнать, к какому категориям относятся эти новые теги.
Это типичный? Есть ли лучшие способы настроить базу данных или обработать эту ситуацию, чтобы все оставалось более организованным?
Спасибо
+----+------------------+---------------+-----------------+--------------+--------+----------+
| 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 |
+----+------------------+---------------+-----------------+--------------+--------+----------+
Это типично. Проблема, которую вы собираетесь иметь, - это поддерживать столбец DisplayOrder, поскольку вы получаете все больше записей. –
@ DanBracuk хорошая точка ... На самом деле я сталкиваюсь с такими проблемами при создании и изменении данных семян. Мне еще предстоит найти хороший способ справиться с этим. Есть ли решение, чтобы лучше управлять этим? – Michael
Лучший способ, который я нашел, - иметь представление для каждой категории с триггерами для обработки DML. Это решает несколько проблем. Выпадающий список, который показывает только города, может иметь вид Города как его единственный объект данных. То же самое с выпадающим майором и т. Д. Им не нужно даже знать о категориях отображения или активных флагах (неактивная запись даже не отображается в представлении). Техническое обслуживание также может быть выполнено через представления. Триггер Delete может просто перевернуть флаг Active, если это желаемый результат. – TommCatt