Я создаю небольшую базу данных для лаборатории. У нас есть некоторые правила для создания строки идентификатора для каждого элемента, поэтому я не хочу хранить его в моей базе данных. Проблема в том, что некоторые изменения в данных, например, реакция человека на этот элемент изменились, вызывает изменение строки ID. Но я не могу исправить его для печатных документов. Как я могу сохранить старую версию этой строки идентификатора. Я могу просто не менять его, но это нарушит правила. Какие-либо предложения?Как хранить старую версию ID-строки в дизайне базы данных?
ответ
Важно различать первичный ключ, который должен однозначно идентифицировать строку в таблице и какой-то умный ключ, который обычно имеют продукты в каталогах.
Для первичного ключа используйте auto-incrementing integer - очень мало исключений из этого.
Добавить столбцы для вещей, которые вы пытаетесь представить в этой смарт-ключ, как: Person
, Project
, Response
и т.д.
Добавить отдельный столбец для этого ключа и относиться к нему, как и любой другой области в таблице - - это должно держать людей, которые привыкли к этому виду мышления счастливым.
Смарт-ключ является неправильным здесь, с точки db-design, этот ключ довольно глупый.
Спасибо Дамир. Я, вероятно, сделаю, как вы сказали. И я добавлю поле для заметок. Таким образом, они могут хранить сейчас версию ID там. Но тогда я не могу искать с новым ID, я должен искать в поле Person, Project, Response ... возможно, мне нужна таблица IdVersions? – gstar2002
Вы можете добавить столбец версии для строки. Каждая новая версия может добавить строку и увеличить версию. Таким образом, вы сохраняете историю. Все предыдущие значения FK в этой таблице остаются неизменными. Все новые значения FK указывают на последнюю версию. –
, например, ответ лица для этого элемента изменился, вызывает чан из ID Струнного
Похоже, рабочий процесс в вашей лаборатории нарушается. Идентификаторы никогда не должны меняться. Постарайтесь привлечь внимание к начальству.
@ thedeveloper Art. Идентификатор выглядит как «abc/12/xzy», abc - аббревиатура названия проекта, xzy - сокращение имени человека. Люди используют его, потому что они могут получить некоторую информацию из этой строки. Но вы правы, может быть, мы должны использовать это правило только для создания этого идентификатора. – gstar2002
Для расширения точки Дамира
A «Smart Key» является то, что вы говорите, когда
У нас есть некоторые правила, чтобы сделать строку идентификатора для каждого пункта
Вы с указанием названия изделия, возможно, код категории и добавление
человек ответ на этот товар
Так что, если бы я был ответственен за Beakers, которые могут быть элемент ID
СТЕКЛО-МЕНЗУРКУ-SPAGE
Вот код 'становится «Смарт-ключ», когда вы используете его в базе данных как Основной ключ.
Это анти-шаблон. Как и большинство анти-шаблонов, это соблазнительно. Людям нравится идея просто взглянуть на ключ и понять, что это такое, что он называется и кого я прошу получить больше. Вся эта информация о отчете или полке с несколькими символами. Но это анти-шаблон по причине, о которой вы говорили, - это имеет смысл и смысл, которые можно изменить.
Как указывает Дамир, вы можете сохранить это значение в другом столбце, который мы будем называть ALTERNATE KEY или CANDIDATE KEY ... он уникален, это может быть ПК, но это не так. Вам понадобится уникальное ограничение для столбца, но не ограничение первичного ключа.
- 1. Обновление базы данных, хранящей старую версию
- 2. Как импортировать старую версию файла базы данных в новую версию?
- 3. Как получить старую версию процедуры после восстановления базы данных
- 4. Rake-файл видит старую версию базы данных на Heroku
- 5. Наследование в дизайне базы данных
- 6. ошибка в дизайне базы данных?
- 7. Ловушка в дизайне базы данных
- 8. Как отправить старую версию поля
- 9. Как установить старую версию scala
- 10. Как загрузить старую версию Chrome?
- 11. Как найти старую версию узла?
- 12. Как установить старую версию PHPUNIT?
- 13. Установить старую версию symfony
- 14. Установить старую версию scrapyd
- 15. Требовать старую версию silverlight
- 16. Установите старую версию firefox
- 17. Установить старую версию phantomjs
- 18. Мысли о дизайне базы данных Wordpress
- 19. Установите конкретную старую версию Xamarin.Android
- 20. Как преобразовать базу данных MySQL в более старую версию?
- 21. Петли и ловушки в дизайне базы данных
- 22. Инкапсуляция или абстракция в дизайне базы данных
- 23. Kryo: десериализовать старую версию класса
- 24. Как проверить старую версию папки в git
- 25. Как использовать старую версию gcc в Linux
- 26. Как проверить более старую версию в SVN?
- 27. Как вернуть Firebug в старую версию?
- 28. Создание базы данных. Нужна помощь в дизайне
- 29. Внешние ключи в дизайне базы данных
- 30. Уменьшение повторяющейся информации в дизайне базы данных
вопрос не имеет смысла (для меня, по крайней мере) –
@Mitch Wheat. Да, это не имеет смысла, если мы не пытаемся изменить этот идентификатор. Но если придерживаться правил, мы должны их изменить. – gstar2002