Моя рекомендация: сделайте их такими же большими, как вы, действительно, нужны им.
E.g. для столбца почтового индекса достаточно 10-20 символов. То же самое касается номера телефона. E-Mail может быть длиннее, 50-100 символов. Имена - ну, я обычно обойдусь с 50 символами, а для первых имен. Вы можете всегда и легко расширять поля, если вам действительно нужно - это не большая задача.
Невозможно создать все поля varchar/nvarchar настолько, насколько это возможно. В конце концов, страница SQL Server фиксирована и ограничена 8060 байтами в строке. Имея 10 полей NVARCHAR (4000), просто спрашивает о проблемах ... (поскольку, если вы на самом деле пытаетесь заполнить их слишком большим количеством данных, SQL Server будет вам запрещен).
Если вам действительно нужно действительно большое поле, используйте NVARCHAR/VARCHAR (MAX) - они хранятся на вашей странице, если они подходят, и будут отправляться в хранилище «переполнения», если они становятся слишком большими.
NVARCHAR vs. VARCHAR: это действительно сводится к тому, что вам действительно нужны «экзотические» персонажи, такие как японский, китайский или другие персонажи, отличные от ASCII? В Европе даже некоторые восточно-европейские персонажи больше не могут быть представлены полями VARCHAR (они будут лишены своего хакека («орфография?»). Западно-европейские языки (английский, немецкий, французский и т. Д.) Очень хорошо обслуживаются VARCHAR
нО: NVARCHAR действительно использует в два раза больше места - на диске и в памяти SQL Server - во все времена Если вам действительно нужно, вам это нужно - но вы действительно :-) Это..? вам решать.
Марк
Должно быть в спецификации требований, не так ли? ;-) –
Я предполагаю, но если вы тот, кто делает спецификацию, то это сводится к вам ... – Paul