Я возился с типом данных битовой строки в последнее время. И довольно любопытно о:
… плюс 5 или 8 байтов в зависимости от длины строки
@ дно эта страница документа
как это обрабатывается на других языках (PHP, Java, C #, C ++ и т. д.) через драйверы (Npgsql, ODBC и т. д.)
Для # 1 кажется, что использование целого числа (smallint / bigint) будет очень эффективным с точки зрения хранения или, возможно, даже выиграет в производительности, поскольку целые числа поддерживаются везде. Выполнение битовых операций с целыми числами редко имеет какую-либо проблему в языках программирования. Тогда какой смысл вводить тип данных? Только для случаев, когда требуется большое количество битовых масок? Индексация битового поля может быть? Мне более интересно, как выполняется индексация битовых полей в Pg.
Для # 2, я запутался, больше, чем просто любопытство. Скажем, простой случай, что если я сохраню битовые маски дня недели в поле бит (7), один бит на день, с самым низким значением, как понедельник. Затем я запрашиваю значение в PHP и C ++. Что я получу? В документе говорится, что у меня будет немного строки. Но битовая строка — это не то, что я могу использовать напрямую — как с целыми числами. Тогда в этом случае я должен отказаться от битового поля?
Может кто-нибудь уточнить, почему / когда следует использовать бит или бит?
[РЕДАКТИРОВАТЬ]—————-Тем не менее, моя голова еще не очищена. Как сказано в вышеприведенном посте (& его комментарии), я четко понимаю, что такое бит (n) и бит варьируется. Но мне интересно, каков их статус на языках программирования. Скажем, насколько я могу найти, эти два типа данных представлены как строки в PHP. Что меньше всего, я бы ожидал.
Кто-нибудь может дать сценарий, что такой столбец лучше всего использовать?
Посмотри на Блог Игоря. Эта статья рассказывает о том, как неуклюжие механизмы двоичных строк в PHP. Я также ищу хороший способ представления типа данных bitvar postgres в PHP для Pomm, но у меня нет абсолютного ответа.
Других решений пока нет …