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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите спроектировать, Использую Interbase 
:(
    Опции темы
Gorcer
  Дата 9.8.2004, 03:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

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



Здраствуйте, вопрос у меня следующий:
Нужно составить базу данных по товарам, причем каждый товар имеет свои свойства, и все их обязательно нужно указывать!

Я сделал следующее:
user posted image

Код

Если вдруг картинка умерла пишу буквами:
Создаю Таблицу Свойств(типа цвет, литраж), и содержания свойств(черный, белый, 2литра ...) и создаю таблицу, с кодом товара, кодом свойства и кодом содержания,....получаеться при 5 свойствах пять записей в последней таблице с одинаковыми кодами товара, но разными кодами свойств и их содержаний.
Этот код товара записываю в таблице-каталоге(товаров).

Создавать для каждого товара свою таблицу невозможно, т.к. их очень много!

Мож у кого будут более удачные предложения?
Буду рад любому мнению, заранее благодарен!


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
<Spawn>
Дата 9.8.2004, 05:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Дак пиши все товары в одну таблицу и идентифицуируй каждый из них по его имени. И зачем делать такую глубокую нормализацию? Например, название свойства и содержание свойства связаны как один к одному? Если так, то их можно в одной таблице держать.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Gorcer
Дата 9.8.2004, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

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



Неочень понял, ты предлагаешь держать таблицу свойств такого типа:

1:Цвет:красный
2:Цвет:Желтый
3:Литраж:2л.

Если так, то не слишком ли избыточная будет база?

По имени каждый товар писать немогу, т.к. не у всех есть имена!


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Kesh
Дата 9.8.2004, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Свойства несут описательную или смысловую нагрузку?..


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Gorcer
Дата 10.8.2004, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

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



Да, в информации о товаре будет выдаваться список свойств и их описание!
Типа Джинсы: Цвет-Черный, Размер-46, Производитель - Франция!


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Kesh
Дата 10.8.2004, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



А выборка по какому-нить свойству производится?.. А то можно было бы их просто все разом в text загнать...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Gorcer
Дата 11.8.2004, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

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



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


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Kesh
Дата 11.8.2004, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



К сожалению ты не указал тип базы...
Я думаю, что можно организовать в таблице поле типа text, varchar, varchar2... и туда для каждого товара загонять его свойства... Т.о. для вывода свойств надо будет выбрать только одно поле... Но это решение не подходит, если необходимо будет делать выборку по определенному свойству...

Для поиска по определенному свойству можно конечно написать что-то типа...
SQL
SELECT <Данные> FROM style='color:orange'><Таблица> WHERE <Свойства> LIKE "%цвет - синий%"

Но жрать оно будет на таких выборках... Будь здоров...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Gorcer
Дата 11.8.2004, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

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



Да по свойствам выборку надо будет делать!
А мой вариант нелучше будет? таблицы "свойства" и "описание", я прикреплю JOIN-ом к таблице с товарами, и из этого буду работать, можно также представления создать объединяющие 3 таблицы!
Или это тоже много жрет? sad.gif


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Kesh
Дата 11.8.2004, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Можно так:

Таблица 1 - товар...
Таблица 2 - название свойства...
Таблица 3 - возможное значение свойства...
Таблица 4 - связь Товар-Свойство-Значение_свойства

Но я бы все-таки рекомендовал сделать по-другому... Товар, какой бы он ни был, может иметь ограничеггое количество свойств... Цвет, размер, цена... Так почему бы не зарегистрировать все эти возможные свойства в таблице товара... Даже если поля таблицы заполняться не будут, то (по крайней мере в Oracle точно) они и места не займут (просто тип им надо дать переменной длины, типа varchar2() )... Тогда и искать можно будет быстро... Вот только одна проблема возникнет - при заполнении/изменении полей много полей придется оставлять пустыми...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Gorcer
Дата 12.8.2004, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

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



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

В своем варианте я создаю таблицу "категории товара" и "соответствия категории и свойств", чтобы пользователь допустим выбрав товар ВОДКА (принадлежащий категории АЛКОГОЛЬ), получил список свойств водки (производитель, литраж, градус)!

Тоже самое касается выборки значения свойств в зависимости от выбраного свойства.

Как решить этот вопрос в вашем варианте базы?



--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Kesh
Дата 12.8.2004, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Да точно также... Просто состав полей на вставку свойств будет выбираться из соответсивия категории и свойств товара...

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


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Гость_Владимир
Дата 11.10.2004, 03:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











LIKE много жрать не будет. Проверено на базе 30к записей - примерно 50 миллисекунд.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

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

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


 




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


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

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