Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Re: Проеткирование БД классической структуры

Помогите, пожалуйста, спроектировать базу данных, в которой одно из
полей содержит информацию о товарах. При этом товары могут быть очень
различного типа. К примеру, один товар может быть просто "тапочки", а
другой "авиабилет". Ест-но, что у первого атрибуты имеют не столь
важное и многообразное значение, как у второго. Авиабилет ведь может
быть на грузовой или пассажирский рейс. Пассажирский может быть разных
классов. Плюс отправные и конечные точки, транзиты, если имеются,
время прибытия и отбытия, номер терминала и может кое-что ещё, что я
упустил. Конечно можно просто на месте тапочек взять и записать всю
инфу, но тогда увеличивается вероятность опечатки оператора, падает
скорость набивания базы и увеливается размер самой базы (одни и те же
значения). Кроме того нет возможности выбрать подробности о каком-либо
пункте. Типа как, если город у нас забит просто в тектовом формате, то
я не могу парсить всю строку, вытаскивать оттуда название, искать в
базе городов и давать, если есть, ссылку.

А ведь могут быть не только авиарейсы - билеты в кинотеатры, тарифы
сотовых операторов да вообще ВСЁ должно заноситься в эту базу по
единому шаблону - если один раз что-то забили, то в будущем это надо
только выбирать из комбо, но не перебивать.

Я придумал один вариант (одно поле в товара - ссылка на структуру и
ещё одно - значения этой структуры), но всё получилось очень запутанно
- объяснять операторам, как этим пользоваться - вилы!

Как это делается по-нормальному?!

Номер выпуска : 5253
Возраст листа : 939 (дней)
Количество подписчиков : 544
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/538709
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Mon, 17 Apr 2006 17:24:54 +0500 (#538709)

 

Ответы:

Original Message From: "Neco" <tempne***@r*****.ru>
To: "comp.soft.prog.prog (2961535)" <burlya***@u*****.ru>
Sent: Monday, April 17, 2006 6:24 PM

А если хранить информацию в нескольких табличках?
Создать табличку с типами товаров (все товары можно разбить на типы: обувь,
билет, тариф оператора сотовой связи и т.д.
таблица Types - список типов товаров
typeid - код типа
name - название типа

и при вводе нового товара указывать его тип.
Тип товара понятно будет храниться в таблице с товарами
Таблица Articles- список товаров и услуг
articleid - код
name - название товара
typeid - код типа товара

Все параметры, специфичные для данного типа хранить в отдельной табличке
таблица Parameters - список параметров
parameterid - код параметра
name - наименование параметра
typeid - код типа товара, к которому этот параметр принадлежит
typevalue - содержит информацию о типе значения (строка, число,
memo-поле, blob и т.д.). Можно хранить коды типов (например, 1 - строка, 2 -
число и т.д.), можно строковые значения. ("string", "integer" и т.д.)

Ну и все сведения о товаре хранить в наборе таблиц, хранящих каждая свой тип
переменной:
Блок таблиц InfoArticle_X (где Х - значения из поля paarmeters.typevalue,
если там хранится код типа, то лучше и ьаблички называть через цифры, если
строка, то строковые названия, чтобы понятно было, что величину параметра со
значением поля typevalue=1 надо искать в таблице InfoArticle_1 или параметр
со значением поля typevalue="string" надо искать в таблице
InfoArticle_integer).
Структура этого блока таблиц такова:
articleid - код товара
parameterid - код параметра
value - значение параметра

С уважением, Бурляев Вячеслав

Номер выпуска : 5261
Возраст листа : 940 (дней)
Количество подписчиков : 544
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/539004
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Tue, 18 Apr 2006 09:30:11 +0600 (#539004)

 

Вариант хороший, только тогда головняк с выборкой из этих таблиц. Ведь
надо, чтобы во всех этих таблицах не совпадали индексы...
Хотя нет!
Можно же сделать одну стандартную таблицу
tab_Good [id,tab_num,good_ptr]
где tab_num будет указывать на таблицу, а good_ptr на товар в той
таблице!
Наверно, ты это и имел в виду...
Спасибо! Отличное красивое решение! Можно ещё добавить указатель на
хранимую процедуру, которая будет использоваться для поиска именно
внутри таблицы этого типа и тогда код клиента станет очень простой!
Огромное спасибо!

Номер выпуска : 5265
Возраст листа : 941 (дней)
Количество подписчиков : 545
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/539391
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Wed, 19 Apr 2006 00:47:24 +0500 (#539391)

 

Здравствуйте, Neco.

Вы писали 17 апреля 2006 г., 15:24:54:

Проектировать базу данных желательно не на коленке, а с помощью CASE-средств.
Рекомендую ERWIN.
Осваивается довольно-таки быстро(в течении нескольких дней).
И в жизни очень пригодится.

Ответить   Tue, 18 Apr 2006 22:42:28 +0300 (#539321)

 

Спасибо, попробую найти.

Номер выпуска : 5266
Возраст листа : 941 (дней)
Количество подписчиков : 545
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/539392
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Wed, 19 Apr 2006 00:48:01 +0500 (#539392)

 

Нашёл в муле версию 4.1 (70 мегов) и пятую (700 мегов). Плюс в инете
нашёл пару заяв, что 4-ый глюкавый. Это так и стоит качать пятую или и
четвёрка сойдёт для начала?

Номер выпуска : 5267
Возраст листа : 941 (дней)
Количество подписчиков : 545
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/539398
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Wed, 19 Apr 2006 01:12:10 +0500 (#539398)

 

Здравствуйте, Neco.

Вы писали 18 апреля 2006 г., 23:12:10:

4 - достаточная для освоения и закрепления навыков.
Там есть небольшие косячки, когда переходишь от логической модели к физической.
Видать, недоломали ребята:-))

А 700-метровая версия-уже можно работать.

Ответить   Thu, 20 Apr 2006 22:35:48 +0300 (#540314)

 

Скачал четвёрку - мягко говоря НИЧЕГО непонятно. Какие-то
прямоугольники, кружки - на Paint очень похоже...

Благо туториал там неплохой.

Только вот...
В чём его преимущества перед обычным студийным (VS2005) редактором БД
я не понял пока.

В общем, буду разбираться, всем спасибо за ответы!

Номер выпуска : 5286
Возраст листа : 944 (дней)
Количество подписчиков : 545
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/540613
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Sun, 23 Apr 2006 00:03:15 +0500 (#540613)