Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранение связанных данных 
V
    Опции темы
WolfAlone
Дата 24.2.2011, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Доброго времени суток!

Возникла необходимость сохранить данные в БД. Данные имеют примерно такой формат:

Товар: Сапоги замшевые, модель: АБВ-123
Дополнительные данные, включают себя соотношение: размер = цена (например, размер 38 = 500руб., размер 41 = 550руб.)

Соответственно, товаров будет более одного и к каждому из них существует таблица с соотношениями размер = цена.

Скажите пожалуйста, как лучше организовать хранение такой информации в БД? (Я имею в виду архитектуру БД)

P.S. Сервер: MySQL-5.

Добавлено через 4 минуты и 19 секунд
Чуть не забыл! Модель у каждого товара является уникальным значением.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
Zloxa
Дата 24.2.2011, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 11
Всего: 161



для описанного Вами случая достаточно одной таблицы.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
WolfAlone
Дата 24.2.2011, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Если немного дополнить вопрос, то звучать он будет примерно так:
"Как организовать хранение и выборку вышеуказанных данных в БД?"

Добавлено через 5 минут и 55 секунд
Цитата(Zloxa @  24.2.2011,  15:15 Найти цитируемый пост)
для описанного Вами случая достаточно одной таблицы. 

Вы не могли бы привести пример такой таблицы? (я имею в виду её структуру)


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
Zloxa
Дата 24.2.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 11
Всего: 161



Ответ на Ваш вопрос столь элементарен, что не хочется Вас им оскорблять, переводя беседу в русло "как с дебилом".

Расскажите лучше как Вы пытаетесь делать,  что у Вас не получается и чего Вы опасаетесь.



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akella
Дата 24.2.2011, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



Создаёшь таблицу. А потом с помощью запросов оперируешь данными.
PM MAIL   Вверх
WolfAlone
Дата 24.2.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



В данный момент в прототипе существует два варианта хранения таких данных.

Вариант 1 (в одну таблицу).

Пример:
Модель / Название / Размер / Цена
АБВ-1 / Сапог 1/ 40 / 500
АБВ-1 / Сапог 1/ 42 / 510
АБВ-2 / Сапог 2/ 45 / 490
(и т.д.)


Вариант 2 (в две таблицы).

Пример:
Таблица 1: Модель / Название
ID(1) / АБВ-1 / Сапог 1

Таблица 2: Родительский_ID / Размер / Цена
1 / 40 / 500

В варианте 1 происходит дублирование данных и смысл самой БД частично теряется, т.к. все эти данные можно с таким же успехом хранить в текстовом файле (я имею в виду, что никакая обработка данных по сути не требуется, только чтение однородного набора данных).

Хотелось бы услышать Ваши комментарии по поводу обоих вариантов. В случае варианта 2 - как лучше производить выборку? Через JOIN?

P.S. Всё желательно уместить в рамках одного запроса.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
Zloxa
Дата 24.2.2011, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 11
Всего: 161



Цитата(WolfAlone @  24.2.2011,  15:36 Найти цитируемый пост)
все эти данные можно с таким же успехом хранить в текстовом файле 

Если можно это делать с тем же успехом, то что заставляет Вас задуматься о необходимости столь существенного уложнения архитектуры решения?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
WolfAlone
Дата 24.2.2011, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Цитата(Zloxa @  24.2.2011,  15:38 Найти цитируемый пост)
Если можно это делать с тем же успехом, то что заставляет Вас задуматься о необходимости столь существенного уложнения архитектуры решения? 


Мысль о том, что правильный выбор архитектуры приложения позволит производить его масштабирование в будущем, без необходимости переписывания большей части кода.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
Zloxa
Дата 24.2.2011, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 11
Всего: 161



Цитата(WolfAlone @  24.2.2011,  15:36 Найти цитируемый пост)
Хотелось бы услышать Ваши комментарии по поводу обоих вариантов.

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

На практике используются оба подхода

Это сообщение отредактировал(а) Zloxa - 24.2.2011, 16:11


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
WolfAlone
Дата 24.2.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Благодарю за внимание. Вопрос закрыт.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0790 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.