powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для хранения строк с переменным кол-вом полей
25 сообщений из 71, страница 2 из 3
Структура БД для хранения строк с переменным кол-вом полей
    #33414379
UrryMcA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to: 4m@t!c

>>Зачем вам это знать?Или принципы реляционности у каждой СУБД глобально
>>различны? А ОСь-то вам чем не угадила????

Сорри - к Вам то как раз никаких претензий.

Это всего-лишь попытка поерничать над "специалистом" guest_20040621. Его ВЕСЬМА информативный ответ меня очень порадовал.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414454
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c
>Весьма глупо, потому что нехорошо ссылаться на таблицы по их названию.
>А Вам в таком варианте 100% придется писать в некоем поле имя таблицы,
> в которой значение искать. Не нормально это.
Но такая структура позволяет осуществлять поиск как по всем характеристикам, так и по части характеристик.
Равно как и другие обсуждавшиеся здесь структуры.

4m@t!c
>2. Мы у себя сделали в таблице атрибутов одно поле для integer, одно для
>даты, одно для double, одну текстовую строку... работает достаточно быстро.
>Можно поступить более последовательно, сделать одну таблицу для целых,
>другую для вещественных, третью для дат, четвертую - для блобов... в
>общем, по количеству нужных Вам типов данных. И в таблице атрибутов
>хранить тип значения атрибута и ключ таблицы значений (1:1 получается?).
В такой ситуации я должен знать, из каких полей я должен выбирать характеристики для данной товарной линии, так же должен знать кол-во этих характеристик, что бы составить правильное количество псевдонимов таблицы. или я что-то не понимаю? Буду признателен, если уточните.
У товарной линии есть перечень характеристик, но у них нет значений. Значения есть у характеристик товаров.

Про количество псевдонимов - а Вам нужны такие выборки?.. Для товаров из разных линий выборка будет с большим количеством пустых полей. Кстати, Вы планируете давать возможность один тип характеристик использовать в разных товарных линиях?.. Это еще более усложнит структуру :)
Из каких полей выбирать характеристики, думаю, ясно. Правильное количество псевдонимов таблицы - это здесь зачем? Ну наверное их меньше тысячи. Но это неважно. Запрос динамически построите, и все.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414514
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Вы хвастаетесь?
Нет, пытаюсь сказать вам, что в данном вопросе не имеет значение ни ОСь, ни СУБД, ни что-то еще. проудкты не указваю, что бы топик не правратился в религиозные войны, по поводу, какая СУБД быстрее, "нормальнее".

>Это не постановка задачи.
Постановка задачи была в первом моем посте.

>Реализацию, при которой нужно менять структуру данных при незначительном
>увеличении объема данных - в ведро.
что сейчас и делается. и ищется вариант корректной структуры БД. Требования к стуркутуре - выдавать максимально быстро результаты запроса при прочих равных условиях.

>определите узкие места Вашего приложения.
Оно еще не готово, а только разрабатывается. Ваш ответ расцениваю, как "Определить корректность или некорректность вариантов решения вашей задачи можно только эмперическим путем"

>храните их в разных tablespace.
Т.е. для каждого товарной группы своя таблица?

>Сорри - к Вам то как раз никаких претензий.
И вам - извините.

>У товарной линии есть перечень характеристик, но у них нет значений.
>Значения есть у характеристик товаров.
Верно, согласен.

>Кстати, Вы ланируете давать возможность один тип характеристик
>использовать в разных товарных линиях?..
>Это еще более усложнит структуру :)
Я это понимаю - все характеристики уникальны.

>Правильное количество псевдонимов таблицы - это здесь зачем?
Пример:
Таблица характеристик товара
ID товара
ID характеристики
поле1 число
поле2 текст
поле3 вещественное
полеn.....

Я должен создать запрос на поиск товара по харктеристикам:
Т.е. в условии я должен проверять перечень полей, в которых хранятся значения характеристик.
Как должен выглядеть запрос??? Какое поле проверять с искомым значением? Если все характеристики хранятся в поле1, то я должен создать псевдонимы, что бы вытянуть все характеристки... Другуим словами, для каждой товарной линии я должен построить соотвествующие конструкции... или я не прав???
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414558
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c
>Кстати, Вы ланируете давать возможность один тип характеристик
>использовать в разных товарных линиях?..
>Это еще более усложнит структуру :)
Я это понимаю - все характеристики уникальны.
На практике для документов это не важно, а для товаров важно. Например, сорт для каждой товарной линии - сущность одна, не надо делать этот атрибут уникальным для каждой линии.

4m@t!c
Правильное количество псевдонимов таблицы - это здесь зачем?
Пример:
Таблица характеристик товара
ID товара
ID характеристики
поле1 число
поле2 текст
поле3 вещественное
полеn.....

Ну типа это и есть пропагандируемый тупой вариант. Только это таблица значений характеристик товара. Псевдонимы - изобретете. t001, t002... И Вы забыли еще ID значения характеристики.

4m@t!cЯ должен создать запрос на поиск товара по харктеристикам:
Т.е. в условии я должен проверять перечень полей, в которых хранятся значения характеристик.
Как должен выглядеть запрос??? Какое поле проверять с искомым значением? Если все характеристики хранятся в поле1, то я должен создать псевдонимы, что бы вытянуть все характеристки... Другуим словами, для каждой товарной линии я должен построить соотвествующие конструкции... или я не прав???
Код: plaintext
1.
2.
select * from goods left join attr_values on goods.id=attr_values.id_goods 
where attr_values.id_attr=NNN and attr_values.value=XX.XXX
Я понятно излагаю?.. Выбираем товары по заданному значению такой-то характеристики.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414592
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Нет, пытаюсь сказать вам, что в данном вопросе не имеет значение ни ОСь, ни
> СУБД, ни что-то еще.

Это ошибочная точка зрения.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414597
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Нет, пытаюсь сказать вам, что в данном вопросе не имеет значение ни ОСь, ни
> СУБД, ни что-то еще.

Это ошибочная точка зрения.
именно

как только появляются цифирки количеств записей и гигабейтов - все имеет значение
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414620
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Ну типа это и есть пропагандируемый тупой вариант.
Тупой???? Я описывал то, как я понял предлагаемый вами вариант.

Код: plaintext
1.
select * from goods left join attr_values on goods.id=attr_values.id_goods 
where attr_values.id_attr=NNN and attr_values.value=XX.XXX
Откуда вы узналаи, что нужно проверять поле value ? Я правильно понимаю, что:
Код: plaintext
CREATE attr_values (id_goods (integer), value1 (integer), value2(char), value3(text))

----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414632
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c>Ну типа это и есть пропагандируемый тупой вариант.
Тупой???? Я описывал то, как я понял предлагаемый вами вариант.

Код: plaintext
1.
select * from goods left join attr_values on goods.id=attr_values.id_goods 
where attr_values.id_attr=NNN and attr_values.value=XX.XXX
Откуда вы узналаи, что нужно проверять поле value ? Я правильно понимаю, что:
Код: plaintext
CREATE attr_values (id_goods (integer), value1 (integer), value2(char), value3(text))

----------------------------------------
Артисты не приехали, приехали цыгане
Ну я запишу это где-нибудь рядом с ИД характеристики в таблице характеристик товарных линий, что такого. Перечислимый тип для типов данных, например. Куда Вы от этого денетесь. Но это у меня не будет именем таблицы, т.к. количество типов данных я уже знаю.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33414698
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Ну я запишу это где-нибудь рядом с ИД характеристики
>в таблице характеристик товарных линий
Что именно вы запишите?

Моделирую ситуацию.
Товаров 5 000 000
Для всех них кол-во товарных линий 500
Каждая товарная линия характеризуется 10 параметрами. Вы осуществляете поиск по характеристикам товарной линии. у которой все поля - целые числа, т.е. вы объеденяете таблицу атрибутов с самой собой 10 раз.
Считаем кол-во строк в таблице атрибутов:
5 000 000 * 10 = 50 000 0000 - размер таблицы атрибутов товаров.
в процессе объединения манипулируем с таблицей неслабых размеров.

В случае разделения свойств манипулируем таблицей состоящей всего навсего из строк для данной товарной линии. Только таблиц конечно же не 1, а 500.


----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33416776
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я под тупым вариантом подразумевал предложенный мной . Разжевывать его дальше недосуг. Таблицу характеристик товарных линий 10 раз объединять не надо. Откуда возьмется таблица неслабых размеров не понимаю. Предлагаю замять этот вопрос для ясности

"пока вы смотрите свой телевизор, инопланетяне через него трахают вам мозги"
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33419746
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы хотите вести речь только о реляционных СУБД?
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33420761
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c
Моделирую ситуацию.
Товаров 5 000 000
Для всех них кол-во товарных линий 500
Каждая товарная линия характеризуется 10 параметрами. Вы осуществляете поиск по характеристикам товарной линии. у которой все поля - целые числа, т.е. вы объеденяете таблицу атрибутов с самой собой 10 раз.
Считаем кол-во строк в таблице атрибутов:
5 000 000 * 10 = 50 000 0000 - размер таблицы атрибутов товаров.
в процессе объединения манипулируем с таблицей неслабых размеров.

Веселенькая дисскуссия.
Почему для товара обязательно все атрибуты будут заполнены? на практике как раз наоборот, для одной группы заполнять одни атрибуты, для другой другие, а пустоты нет смысла хранить - это только увеличивает таблицу значений атрибутов.

Т.е. реально она будет раза в 2 меньше по строчкам.
И еще я что-то не совсем представляю себе справочник товаров с 5 млн. позиций... это что такое за изврат? глобальная компания которорая всем торгует? или для 2-х одинаковых карандашей разнах цветов заводится столько же позиций?

Возможно проблема скорости как раз в том, что пользователи просто что-то говорят и просто стоит провести инжиниринг предметной области?

В розничной торговле в гипермаркетов справочник товаров на 2 порядка меньше, и то скапливается за длительное время работы, причем часть товара прячат в архив или удаляют (типа удаляют).

Поиск будет волне приемлемым, причем можно пользовать индексы по значениям, если конечно нет отбора типа like '%что-то%'
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33424346
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валентин К
Почему для товара обязательно все атрибуты будут заполнены? на практике как раз наоборот, для одной группы заполнять одни атрибуты, для другой другие, а пустоты нет смысла хранить - это только увеличивает таблицу значений атрибутов.
Правильное понимание демонстрируете, товарищ

Валентин КИ еще я что-то не совсем представляю себе справочник товаров с 5 млн. позиций... это что такое за изврат? глобальная компания которорая всем торгует? или для 2-х одинаковых карандашей разнах цветов заводится столько же позиций?

Наверное, по серийникам учет :) Но в таком случае надо по-другому все строить, а тут пока что обсуждали вариант для оптовой торговли, насколько я мог понять.

А кто-нибудь знает примерное количество книг в большом книжном магазине?.. Но наверное тоже не 5 млн.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33443576
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Почему для товара обязательно все атрибуты будут заполнены?

У каждой товарной линии свои нормированные атрибуты, по которым нужно производить поиск. И тип значнения атрибута - различный.

Насчет большого кол-ва записей-товаров. Вы представляете, сколько один завод, например, по производству запчастей к технике, производит позиций товара в ассортименте???? Так я вам могу сказать - от 3 000 до 3 000 000.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33443606
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c
Насчет большого кол-ва записей-товаров. Вы представляете, сколько один завод, например, по производству запчастей к технике, производит позиций товара в ассортименте???? Так я вам могу сказать - от 3 000 до 3 000 000.
----------------------------------------
Артисты не приехали, приехали цыгане
Это наводит на мысли о том, что Вы собираетесь систему складского и производственного учета для такого завода разработать. Я ошибаюсь?..
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33443647
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может все-таки посмотреть на поля типа XML?...
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33444996
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Это наводит на мысли о том, что Вы собираетесь систему складского и
>производственного учета для такого завода разработать. Я ошибаюсь?..
Не знаю, что вы вкладываете в понятия "складской и производственный" - это будет проект по систематизации продукции основных заводов-изготовителей.

gardenmanМожет все-таки посмотреть на поля типа XML?...
Не понимаю, о чем вы говорите, более того, считаю применение XML в данном случае неуместным. Если я не прав - прошу поправить меня примером.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33445014
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cНе знаю, что вы вкладываете в понятия "складской и производственный" - это будет проект по систематизации продукции основных заводов-изготовителей.Не вижу проблем. Окончательный вывод о применимости предлагаемых здесь подходов можно сделать после того как кто-то сподобится нагенерить соответствующих баз в промышленном масштабе - а обсуждать структуру неблагодарное занятие при таких номенклатурах, пробовать на железе надо тоже.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33445071
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я это уже понял. Просто думал, что есть готовые решения и я буду изобретать велосипед или прикручивать костыли.
Кстати, я начинаю думать в сторону разделения характеристик по таблицам соотвествующих типов данных.
В любом случае не составит большого труда изменить структуру БД и потестировать предложенные подходы.
Еще раз спасибо за идеи.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33466319
Б.Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, я начинаю думать в сторону разделения характеристик по таблицам соотвествующих типов данных.

У меня была похожая ситуация, тоже куча объектов с разными наборами характеристик, которые плохо поддавались группировке. Задача была решена именно так. Не самое изящное решение, но тем не менее рабочее.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33467178
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DogenА кто-нибудь знает примерное количество книг в большом книжном магазине?.. Но наверное тоже не 5 млн.
В очень большом - до 100 000. В относительно небольших - до 15 000 - 30 000.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33562770
studentka_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поместила свой вопрос в тему "БД зап. частей", но эта тема более подходит, как мне кажется, т.к. построение таблиц делала, прочитав именно эту тему.

Посмотрите пожалуйста структуру. Обьектами в моём случае будут являться: автомобиль, мотор, коробка передач и т.д., обьектов будет очень много - соответственно для каждой зап. части автомобиля. Самый главный вопрос - об организации аттрибутов Обьекта. Вопрос: правильно ли я поняла ваши обьяснения, т.е. правильно ли построены таблицы. Ошибки, замечания?
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33562910
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Организация аттрибутов сильно зависит от того, сколько их будет примерно.
Поудет и такая схема, она красивая и для курсовой очень понравиццо руководителю :).
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33562926
studentka_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ах если бы только для курсовой... :)
мне нужно реальную базу данных создать, я практику на производстве прохожу, они ко мне как к специалисту относятся (что, конечно, льстит, но и ожидают от меня соответственно многого...). Опыта у меня, однако, маловато, поэтому и прошу здесь знающих людей оценить.
...
Рейтинг: 0 / 0
Структура БД для хранения строк с переменным кол-вом полей
    #33562950
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Схеме правильная :) что еще можно сказать...

Вопрос не в схеме, а в том, что нужно на предприятии.
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 2 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для хранения строк с переменным кол-вом полей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]