как правильно хранить даты, относящиеся к определенному столбцу c, несколько раз - PullRequest
1 голос
/ 09 мая 2020

Мне кажется, я даже не написал вопрос topi c правильно, потому что я так запутался в этом, вот в чем дело ... Я работаю над простым приложением на VB. NET Я создал Table has столбцы с (id -name - startdatetime - enddatetime - Department), я хочу сохранить эту информацию таким образом, чтобы я мог искать предыдущую дату, скажем, информацию имени за один месяц a go, чтобы я мог получить это имя с дата этого дня точно

Я уже сделал это, но проблема заключалась в том, что каждый раз, когда я вставляю новые данные с именем и датой, они будут сохранены в предыдущую дату, поэтому предыдущее будет удалено, потому что будет обновлено новым

меня так смущает, нужно ли мне создать 2 таблицы с помощью Relation или одной достаточно, чтобы сделать мой магазин приложений и сохранить прошлое Время предыдущей даты, связанное с именем и отделом

спасибо

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Большое спасибо за ответ, и да, вы открыли мне глаза на новые вещи, так как я все еще учусь на самом деле .. Мое приложение для записей пациентов, чтобы делать записи для пациентов. Посещения учреждения, поэтому, если уже есть запись, создается пользователь просто добавит новое посещение с новыми датами и связано с отделением и именем врача, и если у него нет записи, пользователь создаст новую запись и сделает новый визит для пациента

вы пишете, я использую Обновите, но с кнопкой Обновить, если хотите обновить запись

runcmd("update bsm Set r=" & r.Text & ", nm ='" & nm.Text & "', ino ='" & ino.Text & "', age='" & nt.Text & "', sex='" & ComboBox1.SelectedItem & "', sdat='" & sdat.Text & "', edat='" & edat.Text & "', cp='" & cp.Text & "' , dig='" & dig.Text & "' , dep='" & dep.Text & "' , doc='" & doc.Text & "' , rmk='" & rmk.Text & "' where r=" & r.Text, "Data Is Added Successfully")

, и я использую вставку для добавления новой записи

Dim strinsert As String = "insert into adm.bsm(r,ino,nm,nt,sex,age,cp,sdat,edat,dig,dep,doc,rmk) VALUES ('" & r.Text & "','" & ino.Text & "','" & nm.Text & "','" & nt.Text & "','" & ComboBox1.SelectedItem & "','" & age.Text & "','" & cp.Text & "','" & sdat.Text & "','" & edat.Text & "','" & dig.Text & "','" & dep.Text & "','" & doc.Text & "','" & rmk.Text & "')"
            Dim cmd As New MySqlCommand(strinsert, conn)
0 голосов
/ 09 мая 2020

Я дам несколько советов по разработке программного обеспечения и баз данных.

Каждая строка в (большинстве) таблиц базы данных представляет собой некую сущность в реальном мире вашего приложения. Например, у вас может быть таблица с именем department, где каждая строка будет содержать название отдела и местонахождение. Сущность здесь - это отдел.

В вашей таблице со столбцами id, startdatetime, enddatetime, department есть строки, которые представляют какое-то событие. Вы не сказали нам, что это за мероприятие, но это не имеет значения. Допустим, отделы по очереди спонсируют офисный кофе-час. Сущность для этой таблицы - событие спонсируемого кофе-часа.

Итак, каждый раз, когда будет спонсируемый кофе-час, ваша программа ВСТАВИТ новую строку в вашу таблицу с названием отдела (или идентификатором, или чем-то еще) и время начала и окончания. Скорее всего, вы никогда не будете ОБНОВЛЯТЬ строки в этой таблице, если, например, не обнаружите, что у вас было неправильное время окончания, когда вы впервые ВСТАВИЛИ строку.

Теперь у вас есть запись всех часов спонсируемого кофе. Вы можете использовать свою таблицу для различных запросов. Вот один: Когда каждый отдел в последний раз спонсировал кофе-час?

       SELECT department, MAX(startdatetime) recent
         FROM tbl 
        GROUP BY department;

Вашей таблицы достаточно, чтобы представить такую ​​сущность, как этот спонсируемый кофе-час. Но, если несколько отделов спонсируют ваши часы кофе когда-нибудь, вам понадобится отношение «один ко многим» между часами кофе и отделами, и, следовательно, другой стол.

Вы писали каждый раз, когда я вставляю новые данные имени и даты, они сохраняются на предыдущую дату и время ... обновляются с новым. Вы не показали свой код. Из вашего описания я предполагаю, что вы используете UPDATE и изменяете существующую строку, а не используете INSERT, чтобы вставить новую строку для нового события. Возможно ли, что ваша программа это делает? Если так, то это неверно.

Самое забавное в строках базы данных, представляющих реальные события, заключается в следующем: со временем вы накапливаете их все больше и больше, и ваши таблицы растут. Все нормально. (Вы можете организовать УДАЛЕНИЕ древних строк, но это другое значение c.)

Совет от профессионала Подумайте о реальных вещах, которые вы пытаетесь представить, зная, что каждая из эти вещи получат свою собственную строку в таблице.

Надеюсь, это вам поможет.

...