|
|
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
У меня тут ко всем вопрос: Есть примерно десять категорий значений и 50 значений,которые принадлежат нескольким из категорий, но не всем. Что лучше использовать - столбец с значением-кодом(проверят соответствие определенной категории по битовой маске категории) или отдельную таблицу с сопоставлением пар категория и принадлежащие ей значение? И почему? Заранее благодарен всем ответившим. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 13:11 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiter , думается мне что табличкой таки лучше... Поскольку всякое "вырезание" данных из некоего свойства лишает вас Первой Нормальной Формы. автор Первая нормальная форма (1NF) — одна из возможных нормальных форм таблицы реляционной базы данных. Определение Таблица находится в первой нормальной форме, если каждый её атрибут атомарен. Под выражением «атрибут атомарен» понимается, что атрибут может содержать только одно значение. Таким образом, не существует 1NF таблицы, в полях которых могут храниться списки значений. Для приведения таблицы к 1NF обычно требуется разбить таблицу на несколько отдельных таблиц. Замечание : в реляционной модели отношение всегда находится в 1 (или более высокой) нормальной форме в том смысле, что иные отношения не рассматриваются в реляционной модели. То есть само определение понятия отношение заведомо подразумевает наличие 1NF. Взято тут ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 14:30 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
krvsa, ну вообше значение-код представляет собой обычное целое число, которое просто сравнивается по логической операции &(и) со вторым обычным целым число, после чеге результат проверяется на равенство второму числу. То есть проверяется наличие бита данной категории в значение-коде. Так что в принципе это подходит под 1NF, просто требует более сложной манипуляции над значением.Т.е. это упрошенная форма XML данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 14:46 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiterТак что в принципе это подходит под 1NF, просто требует более сложной манипуляции над значением. это подходит под 1NF. ТОЧКА а если " просто требует более сложной манипуляции над значением " - это уже не 1NF Шайтан ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 15:11 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiterтребует более сложной манипуляции над значением Вот поэтому и не подходит. Таким макаром я могу и строку типа "А__Б_Т_Х___" хранить... А потом буковки "вырезать" из нее. Только это не 1НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 15:13 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
ШайтанspectatorpiterТак что в принципе это подходит под 1NF, просто требует более сложной манипуляции над значением. это подходит под 1NF. ТОЧКА а если " просто требует более сложной манипуляции над значением " - это уже не 1NF Шайтан krvsaspectatorpiterтребует более сложной манипуляции над значением Вот поэтому и не подходит. Таким макаром я могу и строку типа "А__Б_Т_Х___" хранить... А потом буковки "вырезать" из нее. Только это не 1НФ. Сравнение по бинарной маске и обычное сравнение числа, одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 16:13 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiter , ню-ню... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 16:51 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiter, Делал проверку по битовой маске, чтобы заменить полтора десятка колонок с типом bit (они появлялись по мере возникновения новых э-э-э "категорий" ) на одну. В таблице было около двух сотен строк. Все замечательно работало. То есть, для специфической ситуации, когда надо малой кровью исправить чужие ошибки проектирования базы, решение вполне рабочее. Но вынуждает проявлять немало изобретательности для поддержания целостности и непротиворечивости данных. Да и читабельность запросов оставляет желать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 17:05 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
baracsspectatorpiter, Делал проверку по битовой маске, чтобы заменить полтора десятка колонок с типом bit (они появлялись по мере возникновения новых э-э-э "категорий" ) на одну. В таблице было около двух сотен строк. Все замечательно работало. То есть, для специфической ситуации, когда надо малой кровью исправить чужие ошибки проектирования базы, решение вполне рабочее. Но вынуждает проявлять немало изобретательности для поддержания целостности и непротиворечивости данных. Да и читабельность запросов оставляет желать... а сточки зрения производительности что быстрей по битовые маски проверки или огромная таблица сопоставления значений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 18:54 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiter, зависит от задачи. Например, можно ли построить индекс по биту битовой маски? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 06:35 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
beluginspectatorpiter, зависит от задачи. Например, можно ли построить индекс по биту битовой маски? Ну в принципе да, индексы в MS SQL 2005 мощная сила. Так что пожалуй все таки надо использовать таблицу сопоставления значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 08:06 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiterа сточки зрения производительности что быстрей по битовые маски проверки или огромная таблица сопоставления значений? На SQL 2000 и 2005, при такой, к примеру, выборке Код: plaintext То есть, как уже было сказано, "огромная" (это сколько, кстати? ), но грамотно индексированная "таблица сопоставления" вполне может оказаться предпочтительнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 12:26 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
baracsspectatorpiterа сточки зрения производительности что быстрей по битовые маски проверки или огромная таблица сопоставления значений? На SQL 2000 и 2005, при такой, к примеру, выборке Код: plaintext То есть, как уже было сказано, "огромная" (это сколько, кстати? ), но грамотно индексированная "таблица сопоставления" вполне может оказаться предпочтительнее. Я и имел ввиду что таблица сопоставлений лучше, по производительности, по сравнению с битовой маской. Просто перейдя с MySQL на MS SQL 2005, все время забываю просто классную систему индексации у MS SQL. "огромная" это более 15 000 с ближайшим расширением за 30 000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 15:35 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiterЯ и имел ввиду что таблица сопоставлений лучше, по производительности, по сравнению с битовой маской. Просто перейдя с MySQL на MS SQL 2005, все время забываю просто классную систему индексации у MS SQL.Я, вобщем, тоже об этом spectatorpiter"огромная" это более 15 000 с ближайшим расширением за 30 000 30 тыс. строк - это совсем не много. Чтобы выявить разницу в производительности на таком объеме, надо проводить специальное исследование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 16:31 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
А как по битовой маске будешь делать запрос с условием Код: plaintext где аргументы тоже желательно выбрать запросом... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:26 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
spectatorpiterНу в принципе да, индексы в MS SQL 2005 мощная сила. Так что пожалуй все таки надо использовать таблицу сопоставления значений. Алилуя! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2010, 14:27 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
krvsaА как по битовой маске будешь делать запрос с условием Код: plaintext где аргументы тоже желательно выбрать запросом... Будучи занудой, отмечу: это вполне реализуемо при конечном числе "аргументов" (а оно конечно и не велико по условию задачи), хотя и выглядеть будет громоздко (о чем уже было сказано ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2010, 22:26 |
|
||
|
Что лучше значение-код или таблица сопоставления?
|
|||
|---|---|---|---|
|
#18+
baracsэто вполне реализуемо Это все из серии "Зачем просто, если можно сложно"... А я к тому, что вся эта "битовость" это таки не 1НФ. Хоть "равенство" и "сравнение помаске" обе являются операциями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2010, 09:47 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36408793&tid=1542887]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 442ms |

| 0 / 0 |
