Вот другой тот времени, который получает меня:
static void PrintHowLong(DateTime a, DateTime b)
{
TimeSpan span = a - b;
Console.WriteLine(span.Seconds); // WRONG!
Console.WriteLine(span.TotalSeconds); // RIGHT!
}
TimeSpan. Секунды являются частью секунд промежутка (2 минуты, и 0 секунд имеет значение секунд 0).
TimeSpan. TotalSeconds является всем промежутком, измеренным в секундах (2 минуты имеет общее значение секунд 120).
A FOREIGN KEY
служит двум целям:
В большинстве случаев эту функцию можно более эффективно реализовать с помощью других инструментов.
С помощью внешних ключей вы
В некоторых базах данных (не уверен в MySQL) FOREIGN KEY
автоматически индексируется, что значительно ускоряет ваши соединения и запросы по внешним ключам. Кроме того, есть уже упомянутые преимущества каскадного удаления, ссылочной целостности и т. Д.
То, что вам не хватает, - это принудительная ссылочная целостность (то есть, если ваша другая таблица имеет user_id
27, в таблице пользователей ДОЛЖЕН быть идентификатор 27) и возможность автоматического каскадного обновления и удаления (т.е. если вы удаляете пользователя 27, соответствующие строки в другой таблице также автоматически удаляются и т. д.)
На мой взгляд, это того не стоит. Я вполне способен обеспечить ссылочную целостность своего кодового адреса, а работа с внешними ключами огромная неприятность при обслуживании.
Добавление внешних ключей - всегда хорошая идея - по крайней мере, я никогда не видел убедительной причины не использовать их.