| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > таблицу типа "таблицы умножения" в БД |
| Автор: shuttle 26.3.2011, 20:23 |
| Всем известно что такое таблица умножения. Умножаем число а на число b - находим в верхней строке число a, в первом столюце число b и на их пересечении получаем результат. Допустим в БД есть такая таблица - как с ней работать, т.е. когда пишем запрос мы указываем название столбца и значение = на выходе результат несколько строк, в которых значение в данном столбце равно заданному в условии. А тут получается надо найти сначала нужный столбец, потом строку и на перекрестье получить их значение. Перебиваить таблицу, так что бы указывать все комбинации идея плохая. Как в БД работают с такими таблицами? |
| Автор: Экскалупатор 26.3.2011, 20:56 |
| shuttle, что то мне кажется сомнительным что в бд могут понадобиться подобные таблицы. их всегда можно представить в более логичной(с точки зрения реляционной модели) формы. в какой реальной задаче может понадобится таблица с подобным устройством? отступление: коль уж сильно надо, то выбери столбец и отсчитай количество строк, получится требуемая ячейка. т.е. если 3х4 то выбираем столбец № 3 и в этом столбце смотрим результат 4. |
| Автор: jonie 26.3.2011, 21:03 | ||
угу, нечто вроде
|
| Автор: Gluttton 26.3.2011, 22:38 | ||
Я бы сделал это так:
|
| Автор: Экскалупатор 26.3.2011, 22:52 |
| и все таки я думаю что подобные таблицы использовать не кошерно, вроде одно из правил нормализации гласит что если поле можно вычислить то оно не должно содержаться в таблице в явном виде. в случае с таблицей умножения ее можно вычислить всю. а какие данные можно было бы хранить в таком виде и при этом их нельзя было бы вычислить я представить не могу. в любом случае можно сделать вполне нормальную структуру таблиц и избежать такого непонятного хранения как хочет топикстартер. |
| Автор: Экскалупатор 27.3.2011, 00:52 | ||
я про это и говорил, даже в таких условиях гораздо логичнее было бы сделать таблицу высот, таблицу удаления и таблицу значений, а не городить все в одну кучу. но это имхо. |
| Автор: jonie 27.3.2011, 12:24 |
| Экскалупатор, мне только один раз понадобилась такая конструкция - это был отчет по датам в mssql2000 (он не поддерживает PIVOT) |
| Автор: Экскалупатор 27.3.2011, 12:32 |
| jonie, и его оказалось удобнее хранить в такой конструкции? а если разбить на несколько таблиц? мне если честно не приходилось с подобным сталкиваться, так что тема интересна. |