Как вы обрабатываете несколько типов значений в MySQL, когда наследование не поддерживается? - PullRequest
0 голосов
/ 25 марта 2009

Мне нужно создать таблицу атрибутов, где каждая запись - это просто пара имя-значение. Проблема в том, что значение может быть строкой, целым или десятичным числом, и я использую MySQL, который не поддерживает наследование таблиц. Итак, вопрос в том, должен ли я создавать отдельную таблицу для каждого типа значения или я должен просто создать столбцы str_value, int_value и dec_value с дополнительным столбцом value_type, который говорит вам, какой тип использовать? В этой таблице будет не так много записей (меньше 100), поэтому производительность не должна быть большой проблемой, но я просто не хочу принимать проектное решение, которое сделает SQL более сложным, чем он имеет быть.

Ответы [ 3 ]

1 голос
/ 25 марта 2009

При запросе к базе данных вы всегда будете получать строки, независимо от того, какой тип столбца - поэтому нет никаких оснований для принятия проектного решения - просто сохраните все как строку.

Между прочим: наличие дополнительного столбца value_type является избыточным - запись имеет тип единственного столбца, который имеет ненулевое значение.

1 голос
/ 25 марта 2009

Наличие разных таблиц или даже нескольких столбцов, в которых заполнен только один из трех, станет кошмаром. Сохраните все как varchar вместе со столбцом типа.

0 голосов
/ 25 марта 2009

Если вы создадите разные столбцы для каждого типа, вы все равно должны быть умны в своем коде ...

Почему бы просто не сохранить все в виде строки и преобразовать в нужный код в вашем коде?

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