Table employee
{
employeename //employeename is unique
}
Table job
{
jobid,job,assignedPerson,status
}
assignedPerson является внешним ключом, что ссылки на employeename (сотрудника)
То, что я хочу знать, как удалить запись сотрудника, не снимая его запись из таблицы задания, т.е. I значит, что я хочу, чтобы сохранить запись работу и увидеть, какой человек был назначен на работу, даже если этот человек больше не работник ..Может ли внешний ключ быть факультативным
Table employee
{
employeename
}
Table jobemployee
{
jobid,assignedPerson
}
Table job
{
jobid,job,status
}
даже если я сделаю это, мне придется удалить запись из jobemployee, если я хотите удалить запись сотрудника из таблицы «employee» и не сможете узнать, кому было поручено задание.
Пожалуйста, помогите ..
Необходимо создать столбец в таблице заданий, в котором будет сохранено имя сотрудника, или создать специальную таблицу для хранения только имен и ключей сотрудников и создать ссылку, когда какая-либо запись будет удалена. – guisantogui
Что делать, если я удаляю ограничение внешнего ключа у assignPerson, поскольку я использую таблицу employee, чтобы показать все записи, хранящиеся в нем, и заставить пользователя выбрать запись. выбранная запись должна быть одной из таблицы сотрудников. и затем я добавляю выбранное имя employee к назначенному персоналу для конкретной работы. Таким образом, назначенное лицо должно быть одним из записи таблицы сотрудников. Так что даже если я удалю ограничение внешнего ключа, там не будет никакой проблемы. Верный? и было бы легко удалить запись сотрудника и по-прежнему сохранить назначенную запись в «таблице рабочих мест». Правильно ли я? – ash
Удаление внешнего ключа и удаление записей сотрудников возвратятся, чтобы преследовать вас. Вы сами описываете проблему в конце своего вопроса. Уникальное ограничение имен также не обязательно является хорошей идеей. –