Я пытаюсь выяснить, как назвать столбец в моей таблице базы данных, который содержит INT для конкретной «версии записи». В настоящее время я использую " RecordOrder ", но мне это не нравится, потому что люди думают, что выше = новее, но то, как я это использую, ниже = новее (при этом "1" является текущим запись, «2» является вторым по популярности, «3» старше, и так далее). Я рассмотрел " RecordVersion ", но я боюсь, что будет та же проблема. Любые другие предложения? " RecordAge "
Я делаю это, потому что, когда я вставляю в таблицу, вместо того, чтобы выяснить, какая версия будет следующей, а затем риску быть украденным у меня, прежде чем писать, это число, я просто вставляю вставку с "RecordOrder "of 0. В таблице AFTER INSERT есть триггер, который увеличивает все числа" RecordOrder "для этого ключа на 1, поэтому только что вставленная мной запись становится" 1 ", а все остальные увеличиваются на 1. Таким образом, вы можете получить текущую запись человека, выбрав RecordOrder = 1 вместо получения MAX (RecordOrder) и затем выбрав его.
PS - Я также открыт для критики по поводу того, почему это ужасная идея, и я должен вместо этого увеличивать этот индекс. Казалось, что это значительно облегчило поиск, но если это плохая идея, пожалуйста, просветите меня!
Некоторые подробности о данных, например:
У меня есть следующая таблица базы данных:
CREATE TABLE AmountDue (
CustomerNumber INT,
AmountDue DECIMAL(14,2),
RecordOrder SMALLINT,
RecordCreated DATETIME
)
Подмножество моих данных выглядит так:
CustomerNumber Amountdue RecordOrder RecordCreated
100 0 1 2009-12-19 05:10:10.123
100 10.05 2 2009-12-15 06:12:10.123
100 100.00 3 2009-12-14 14:19:10.123
101 5.00 1 2009-11-14 05:16:10.123
В этом примере для клиента 100 есть три строки - они должны 100 долларов, затем 10,05 долларов, и теперь они ничего не должны. Дайте мне знать, если мне нужно уточнить это еще.
UPDATE:
Столбцы «RecordOrder» и «RecordCreated» недоступны для пользователя - они предназначены только для внутреннего использования и помогают выяснить, какая запись является текущей записью клиента. Кроме того, я мог бы использовать его для возврата надлежащим образом упорядоченной истории клиентов, хотя я мог бы так же легко сделать это с датой. Полагаю, что я могу выполнить то же самое, что и увеличивать «версию записи» только с датой RecordCreated, но это исключает удобство знания, что RecordOrder = 1 является текущей записью, и я вернулся к выполнению подзапроса с MAX или MIN в DateTime для определения самой последней записи.