Обьектно Ориентированная БД

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Автор оригинала: dimases
Ушел на мейл... Но, это дипломная версия, а не финал, с которым я сейчас работаю. Глюков нет, но функций мало.
Thanks.
Вопрос на засыпку. Ты хранишь сами данные в нескольких таблицах, каждая из которых соответствует мускульному типу данных (там их штуки четыре вроде, в дипломном примере). Так вот, как сделать отбор типа такого: получить все товары, где цена<100 и в названии есть LG?
 

dimases

Новичок
Определить тип свойства "Цена" конкретного класса. Из этого типа (по таблице set_propertys_for_folders узнать два критерия:
1. Номер таблицы (id_type_of_mysql), где лежит это свойство и
2. id_set_propertys_for_folders, который отвечает унакальность свойства в БД.

Потом искать в найденной таблице по value_property<100 AND
id_set_propertys_for_folders=найденый_в_пункте_2

И все, все выберет.

А если по двум свойствам искать - получить результаты для обойх (как в предыдущем сообщении) и, увы, обработать два массива данных, что, вообщем в PHP не сложно, и не столь ресурсоемко.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
А если по двум свойствам искать - получить результаты для обойх (как в предыдущем сообщении) и, увы, обработать два массива данных, что, вообщем в PHP не сложно, и не столь ресурсоемко.
Это ужасно :-(
 

dimases

Новичок
Автор оригинала: varan
Это ужасно :-(
Ну, не столь уж ужастно, а сводиться только к тому, что в MySQL нет вложенных запросов и хранимых процедур, что решило бы эту проблему. Хотя, может и можно как-нибудь извратиться =)

Вообще, планируем все это переписать под PGSQL но пока некогда.

Еще один проект реализовал на этой системе (еще в стадии наполения и отладки):
http://edem-mebel.ru.alfa.mtw.ru
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Автор оригинала: dimases
Ну, не столь уж ужастно, а сводиться только к тому, что в MySQL нет вложенных запросов и хранимых процедур, что решило бы эту проблему. Хотя, может и можно как-нибудь извратиться =)
Извратиться можно. Делаем выборку элементов, где цена<100 ИЛИ в названии есть LG, причем группируем по id_продукта, подсчитываем с помощью COUNT (*), и смотрим у кого этот COUNT = 2. Т.е.
SELECT ..... , COUNT (*) as kolvo .... GROUP BY id_продукта ORDER by kolvo DESC

И пробегаемся по результату, пока kolvo == 2
Но, IMHO, это тормоз большой.
 

dimases

Новичок
Автор оригинала: varan
Извратиться можно. Делаем выборку элементов, где цена<100 ИЛИ в названии есть LG, причем группируем по id_продукта, подсчитываем с помощью COUNT (*), и смотрим у кого этот COUNT = 2. Т.е.
SELECT ..... , COUNT (*) as kolvo .... GROUP BY id_продукта ORDER by kolvo DESC

И пробегаемся по результату, пока kolvo == 2
Но, IMHO, это тормоз большой.
Не понял? Это вариант для разбиения по нескольким таблицам или все-таки нет?
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Автор оригинала: dimases
Не понял? Это вариант для разбиения по нескольким таблицам или все-таки нет?
Это если разыскиваемые поля одного mysql-типа.
Без разбиения. Все одним запросом.
 

dimases

Новичок
а... понятно...

Ну а чему удивляешься, я же говорил, что есть недочеты, но в целом на этой концепции можно делать сайты, чем пока и занимаюсь =)
 

Bedrich

Guest
Здравствуйте,
Если Вы хотите использовать объектные БД, но не можете себе позволить купить Cache'.
Как известно Каше является М-системой, а М-системы это не только Каше. Есть среди них и бесплатные. К сожалению я непомню какие, но попробуйте поискать в Гугле на предмет М-систем - должен что-нибудь ответить.
 
Сверху