SQL Server - наилучшая практика отношений 1 к 1 - PullRequest
0 голосов
/ 29 мая 2018

У меня есть таблица Station со многими полями, одно из полей - StationPrice.

Я хочу хранить дополнительную информацию о процессе оплаты, такую ​​как - currency, paymentStatus и т. Д. (Где-то около 10 полей).Мой вопрос заключается в том, нужно ли мне расширять текущую таблицу - Station новыми полями или иметь поле с именем StationPriceId, которое будет внешним ключом для другой таблицы с именем StationPrices, в которой будет храниться вся информация о цене, относящейся к этой станции.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

My question is if I need to expand the current table - Station with the new fields or to have a field called - StationPriceId that will be a foreign key to another table called StationPrices which will store all the information about the price related to that station.

Да, лучше использовать две таблицы. Исходя из предоставленной вами информации, лучше использовать отдельную таблицу.

  1. Возможно, вы захотите вести историю изменения цен
  2. Следовательно, если вы ведете отдельную таблицу, вы можете сделать более раннюю цену как Active = false и ввести новую цену для конкретной станции.
0 голосов
/ 29 мая 2018

Ответ на ваш вопрос - один из самых популярных ответов в мире БД - зависит от .Это может выглядеть лучше, если эта информация разделена на 2 разные таблицы, однако вам нужно понимать, что если вы разделите ее, вам понадобится 2 вставки вместо 1, то же самое с обновлением и удалением.Кроме того, вам нужно присоединиться к этой таблице каждый раз, когда вам понадобятся эти данные.Сначала я бы пошел с одной таблицей, а затем переместил ее в отдельный столбец, когда возникнет конкретная потребность.

С другой стороны, если к этим данным будет редко обращаться, а издержки JOIN / DELETE / INSERT будутминимальный, тогда это нормально, чтобы переместить его.

...