Я начинающий программист, который в настоящее время работает над тем, как хранить столбцы PostgreSQL в столбце таблицы. В частности, я хотел бы создать таблицу с столбцом с именем «тип», который хранит один из следующих типов: boolean
, integer
, text
и enum
. Концептуально, однако, я хотел бы, чтобы пользователь сохранил, какие значения (ы) он хотел бы использовать. Целое число, фрагмент текста или список вариантов должны быть возможны. См. Таблицу примеров ниже.Как хранить разные типы в столбце?
id | type | default value
---------------------------------------------------------------
1 | integer | 5
2 | boolean |
3 | enum("red", "blue", "yellow") | red
Последний случай смущает меня. С моими ограниченными знаниями я знаю, что создание таблицы с столбцом с именем type
с типом enum("boolean", "integer", "text", "enum")
возможно, но я не вижу, как это разрешает последний случай в таблице примеров. Кажется, что это разрешает только тип enum
, но в этом случае я не могу указать значение по умолчанию, такое как red
, потому что красный цвет не указан в параметрах типа enum
.
я остался с двумя вопросами:
- При создании таблицы, какой тип я даю столбец с именем
type
? - Как сохранить третью запись в таблице примеров, чтобы я мог сохранить значение по умолчанию, и я могу проверить, действительно ли значение по умолчанию подходит для выбранного типа?
Любой ответ или помощь с благодарностью. Благодаря!
Нет. Это очень очень очень плохой дизайн. Не делай этого. Повернись и попробуй что-нибудь еще. Не выполняйте это. Ааааа! STAHP! – JNevill
Ха-ха, взгляните на мой второй комментарий к ответу Камиля. Это должно прояснить мой подход. – tedvangageldonk