Избегайте повторения в таблице ассоциаций отношения многих ко многим - PullRequest
0 голосов
/ 12 мая 2019

У меня есть следующий сценарий. Я хочу сохранить список адресов, через которые проходил пользователь. Для этого я создал следующую модель данных (очень упрощенную).

pearson -> | id | name | genre | birthdate |
    (id) -> PK
address -> | id | zip_code | line_1 | line_2 | coutry |
    (id) -> PK
pearson_address -> | pearson_id | address_id | from_date | to_date |
    (pearson_id, address_id, from_date) -> PK
    (pearson_id) -> FK
    (address_id) -> FK

Таким образом, с from_date и to_date я могу узнать по адресам, по которым проходил человек. Но мой вопрос заключается в следующем. Существует не так много повторной информации? Таким образом, pearson_id и address_id будут постоянно повторяться для каждого диапазона дат.

| pearson_id | address_id |  from_date  |   to_date   |
| ---------- | ---------- | ----------- | ----------- |
|      1     |     2      |  2018-02-01 |  2018-09-10 |
|      1     |     3      |  2018-02-10 |  2018-12-13 |
|      1     |     2      |  2018-12-13 |  2019-02-11 |
|      1     |     3      |  2019-02-11 |     NULL    |

Это нормально, или мне нужно создать другую таблицу, чтобы связать связь pearson_id и address_id с диапазонами дат?

...