Я дам несколько советов по разработке программного обеспечения и баз данных.
Каждая строка в (большинстве) таблиц базы данных представляет собой некую сущность в реальном мире вашего приложения. Например, у вас может быть таблица с именем department
, где каждая строка будет содержать название отдела и местонахождение. Сущность здесь - это отдел.
В вашей таблице со столбцами id
, startdatetime
, enddatetime
, department
есть строки, которые представляют какое-то событие. Вы не сказали нам, что это за мероприятие, но это не имеет значения. Допустим, отделы по очереди спонсируют офисный кофе-час. Сущность для этой таблицы - событие спонсируемого кофе-часа.
Итак, каждый раз, когда будет спонсируемый кофе-час, ваша программа ВСТАВИТ новую строку в вашу таблицу с названием отдела (или идентификатором, или чем-то еще) и время начала и окончания. Скорее всего, вы никогда не будете ОБНОВЛЯТЬ строки в этой таблице, если, например, не обнаружите, что у вас было неправильное время окончания, когда вы впервые ВСТАВИЛИ строку.
Теперь у вас есть запись всех часов спонсируемого кофе. Вы можете использовать свою таблицу для различных запросов. Вот один: Когда каждый отдел в последний раз спонсировал кофе-час?
SELECT department, MAX(startdatetime) recent
FROM tbl
GROUP BY department;
Вашей таблицы достаточно, чтобы представить такую сущность, как этот спонсируемый кофе-час. Но, если несколько отделов спонсируют ваши часы кофе когда-нибудь, вам понадобится отношение «один ко многим» между часами кофе и отделами, и, следовательно, другой стол.
Вы писали каждый раз, когда я вставляю новые данные имени и даты, они сохраняются на предыдущую дату и время ... обновляются с новым. Вы не показали свой код. Из вашего описания я предполагаю, что вы используете UPDATE и изменяете существующую строку, а не используете INSERT, чтобы вставить новую строку для нового события. Возможно ли, что ваша программа это делает? Если так, то это неверно.
Самое забавное в строках базы данных, представляющих реальные события, заключается в следующем: со временем вы накапливаете их все больше и больше, и ваши таблицы растут. Все нормально. (Вы можете организовать УДАЛЕНИЕ древних строк, но это другое значение c.)
Совет от профессионала Подумайте о реальных вещах, которые вы пытаетесь представить, зная, что каждая из эти вещи получат свою собственную строку в таблице.
Надеюсь, это вам поможет.