2015-11-02 3 views
1

Я перехожу от того, что я вижу как простой мир MySQL/Maria к более сложному миру PostgreSQL. Я создаю довольно обычную таблицу контактных данных человека. Один из столбцов - это номера телефонов, которые должны быть массивом. (Это имеет смысл сделать это вместо трех таблиц, один для контакта, один для номера телефона и один, соединяющий их.) Я хотел бы убедиться, что каждый номер телефона (определенный как «текст», хотя и состоит только из цифр номер телефона не является числом), содержит только цифры.postgresql значения проверок домена

Я не могу понять, как построить предложение CHECK либо для определения столбца, либо для спецификации домена. Домен будет определяться как массив «text» или «char».

Может ли кто-нибудь помочь?

+2

«* Это имеет смысл сделать это *» - почему? Де-нормализация обычно не имеет смысла. Плюс: ваш чек будет ** очень ** прост, если вы _did_ нормализуете модель. –

+0

Причина не нормализации заключается в том, что это не отношение «многие ко многим». Как правило, частное лицо не имеет номера телефонов с кем-либо еще. – Nicole

+1

Есть много причин, по которым кто-то делится рядом с другими людьми: в первую очередь, если они живут вместе с наземной станцией. Люди также звонят с работы, где они даже не владеют номером. Числа меняют владельцев с течением времени, что не вызывает многих-многие-многие в определенный момент, но в конечном итоге придется решать. –

ответ

Смежные вопросы