Эти 2 дополнительные таблицы позволяют вам иметь историю адресов на одного человека.
Вы можете иметь их обоих в одной таблице, но, поскольку сотрудники и клиенты разделены, лучше их также разделить (b / c client id = 1, а идентификатор персонала = 1 нельзя использовать на одной таблице адреса).
не существует «единого» решения проблемы проектирования, вы можете использовать таблицу из 1 человека, а затем добавить столбец для разных сотрудников и клиентов. НО Основная идея заключается в том, что БД должна быть четкой, читаемой и эффективной, а не сохранять таблицы.
около 2 - ПК - это в сочетании , оба clientID, AddressID и from.
так что если кто-то живет 6 месяцев в штатах, затем 6 месяцев в Израиле, а затем обратно в штаты по тому же адресу - вам нужно только 2 адреса в таблице адресов и 3 в client_address.
Идея составления метки from_Date как части ключа верна, хотя она не гарантирует целостность данных - так как вам также необходимо вручную проверить, нет ли перекрывающихся дат между записями одного и того же лица.
около 3 - нет (посмотрите на 2).