У меня есть класс данных с очень большим количеством бинарных свойств - 151 (!), Если быть точным - и я заинтересован в том, как моделировать эти данные структурно. Несмотря на внутреннюю эффективность хранения битовых полей в виде байтов, мои методы spidey чувств покалывают при создании таблицы с 151 бит-полями (в дополнение к другим свойствам).Структуры базы данных с большим количеством битных полей
Не будет большого количества строк - возможно, 1000 и однажды отправленных в производство не будут меняться очень часто.
Я думал о категоризации моих данных в непересекающихся подклассах и создании отдельных таблиц, но разделение свойств таким образом нецелесообразно и даже, если возможно, не будет эффективно сопоставляться с подклассами данных. Другая проблема заключается в том, что я хотел бы объединить все данные и избежать дублирования строк и/или строк. Я также рассмотрел использование некоторого пользовательского двоичного формата, но это не работает, поскольку ключевое поле в моих данных используется как внешние ключи в других таблицах.
Запросы будут активно использовать предложения WHERE для извлечения релевантных данных. Я рассмотрел использование нескольких длин или int полей, но я отклонил это как unworkable, так как я знаю, что не бит-мудрый и-операторов или функций в SQL и, как отмечено выше, классификация свойств является проблематичным, не говоря уже о других основных проблемы разработки программного обеспечения (с помощью этого метода).
Я буду использовать PostgreSQL.
Итак, мой вопрос здесь, я просто делаю таблицу с огромным количеством полей или есть другие методы, совместимые с реляционной моделью?
+1. согласитесь, что БД не может быть лучшим местом для этих данных. Бит-мутное тестирование с использованием соответствующих масок было бы лучше подходит. –
Это был мой первоначальный план, но мне нужны мои ключевые поля в качестве внешних ключей в других таблицах. В любом случае, поскольку бит-мульные операторы поддерживаются, точка теперь спорна. Моя структура становится очевидной. – gvkv
Хммм ... Ваши ключевые значения так же полезны независимо от того, откуда вы их получите. И я не понимаю «... поскольку побитовые операторы поддерживаются ...» Вы имеете в виду, потому что теперь вы можете, вы должны? Простите, но я не следую вашим аргументам. Но я возьму ваше слово, что ваша структура станет очевидной. – dkretz