Имеет ли значение производительность для разделения выбранных полей в отдельную таблицу? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть таблица пациентов. Она содержит поле для курящих, в котором будут значения (курильщик, некурящий или бывший курильщик)

Мой вопрос: сохранять значения непосредственно в виде строки в таблице пациентов или создать другую таблицу для курение и однозначная связь между этими таблицами?

Влияет ли это на производительность запроса

1 Ответ

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

Когда у меня есть три таких варианта, я обычно использую бит / bool, допускающий значение NULL. Столбец bit / bool будет более производительным, чем столбец строки.

Итак, в вашей ситуации в моей таблице был бы столбец «Курение», где null будет означать некурящий, 0 / false - бывший курильщик, а 1 / true - курильщик.

Если вы думаете, что можете добавить параметры позже, например, например, «недавно завершил работу» или что-то в этом роде, bool с нулевым значением может быть не идеальным, поскольку вам придется изменить столбец, а затем написать сценарий для преобразования всех из них в соответствующую строку.

Если вы не хотите использовать логическое значение, допускающее значение NULL, вам нужна таблица «один ко многим», в которой перечислены все параметры: «курильщик, некурящий, бывший курильщик», а затем добавьте внешний ключ на "курительный" стол в вашем столе пациентов. Это также повысит производительность по сравнению с добавлением строк в столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...