Форум → Разработка → Базы данных → Помогите правильно организовать структуру БД
Помогите правильно организовать структуру БД
Страницы: ← Следующая страница →
-
В прикрепленном файле показана форма заполнения данных о программе кредитования.
Там на самом деле еще штук 5 пунктов, которые не влезли на экран.
По этим программам будет производиться поиск.
Собственно говоря как поступить?
Можно все запихнуть в 1 таблицу, даже пункты "Квартира, комната, гараж" и таких пунктов будет много, или делать через связанную таблицу, тогда будет много JOIN.
Можно какие то пункты через JOIN а какие то в таблицу.
Речь идет о пунктах с вариантами типа валюта где есть несколько вариантов. Ведь может добавиться, а может измениться.
Вот варианты пункта "Рассматриваемый доход:" врядли будут меняться.
Лично я склоняюсь к JOIN. Пока я их насчитал 6 штук. -
14 января 2011 г. 23:19, спустя 6 минут 53 секунды
Если пунктов выбора конечное число, я бы обозначил их степенями двойки и в одну ячейку таблицы писал "побитовое или" комбинации. -
14 января 2011 г. 23:43, спустя 24 минуты 29 секунд
AlexB, а можно по подробней про алгоритм хранения данных таким способом? Я чего-то не совсем в курсе. Может ссылочку, или текст для запроса к яше? -
14 января 2011 г. 23:54, спустя 10 минут 50 секунд
>или делать через связанную таблицу, тогда будет много JOIN.
по идее грамотнее будет по 3нф, а для скорости используй innodb и внешние ключи -
15 января 2011 г. 13:16, спустя 13 часов 21 минуту 40 секунд
А чего там особенного.
AlexB, а можно по подробней про алгоритм хранения данных таким способом? Я чего-то не совсем в курсе. Может ссылочку, или текст для запроса к яше?
Гаражи
$a1 = 1;
Кваритры
$a2 = 2;
Дома
$a3 = 4;
Виллы
$a4 = 8;
Любое сочетание типа
$result = $a1 | $a3 | $a4;
коммутативно и даст в $result уникальное число.
Недостаток - быстро заканчиваются степени двойки, влезающие в int.
-
15 января 2011 г. 13:18, спустя 2 минуты 13 секунд
я бы обозначил их степенями двойки
вспомнился jscript, там атрибуты файлам так же задаются, степень двойки - к-либо атрибут, поставить +число, убарть -число… -
15 января 2011 г. 13:26, спустя 8 минут 12 секунд
Да это вообще очень распространенный способ, если перевести числса в двоичную чистему и писать друг под другом - становится понятно как это работает. Единичка в любом столбце может быть только одна, поэтому сочетание всегда уникально. -
15 января 2011 г. 13:31, спустя 4 минуты 41 секунду
ага, и большой плюс - в 1 байт можно записать аж сразу 8!!! значений)
Да это вообще очень распространенный способ, если перевести числса в двоичную чистему и писать друг под другом - становится понятно как это работает. Единичка в любом столбце может быть только одна, поэтому сочетание всегда уникально.
глваное поиск по ним не делать, если идет ситуация про базуСапожник без сапог -
15 января 2011 г. 18:43, спустя 5 часов 12 минут 9 секунд
А чего там особенного.
Гаражи
$a1 = 1;
Кваритры
$a2 = 2;
Дома
$a3 = 4;
Виллы
$a4 = 8;
Любое сочетание типа
$result = $a1 | $a3 | $a4;
коммутативно и даст в $result уникальное число.
Недостаток - быстро заканчиваются степени двойки, влезающие в int.
Извини, все равно не пойму.
Ну вот есть у меня какое то уникальное число. А как мне поиск по этой колонке осуществить?
Ну вот $result = $a1 | $a3 | $a4;
получаю число 13
нужно найти все значения где пользователь выбрал "Гаражи" то есть $a1 = 1;
И как мне SQL запрос написать? -
-
-
15 января 2011 г. 23:16, спустя 3 часа 2 минуты 30 секунд
Да понимаю я тебя прекрасно
Эх, никто меня не понимает =(
В мускуле тоже есть побитовые операции
http://dev.mysql.com/doc/refman/5.0/en/bit-functions.html
т.е. сделав "побитовое и" с требуемым значение ты получишь строго 0 или 1 - есть оно или нет.
другой вопрос будет ли запрос быстро работать, надо проверить, но подозреваю что будет фулл скан …
просто я не понял, что надо искать строго по одному значению, вот по любому сочетанию будет все отлично … а по одному значению … щас пьян но завтра еще подумаю, есть ли способ …Спустя 160 сек.уберите нахуй эту силу слова, бля
чем больше объясняешь тем сильнее падает … в принципе похуй, но все-равно не честно… пиздец я набрался -
15 января 2011 г. 23:26, спустя 9 минут 30 секунд
чем больше объясняешь тем сильнее падает … в принципе похуй, но все-равно не честно… пиздец я набрался
все оправдано
значит хуево объясняешь, раз одного сообщения не достаточноYou can be anything you want to be. Just turn yourself into anything you think that you could ever be. -
-
16 января 2011 г. 0:07, спустя 40 минут 2 секунды
Абырвалг, ты пример покажи.
Ну вот по ссылке
Bitwise OR:
mysql> SELECT 29 | 15;
-> 31
The result is an unsigned 64-bit integer.
Что я из этого вынести должен относительно моей задачи? Я чет не понимаю.
AlexB, да, если искать по целому сочетанию то конечно, тогда все просто. Но тут в программе можно указать валюту(рубли, евро, франки) которые выдаются в рамкаж этой программы, а при поиске человек хочет выбрать все программы где есть рубли.
Это как метки. Только таких меток очень много типов. Собственно и много JOIN, собственно возвращаемся к изначальному вопросу.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!