Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Теоретический вопрос организации БД [D7, IB6.x]


YurikGL ©   (2004-09-30 10:48:00) 

Для примера рассмотрим склад автомобильной техники.
Пусть у нас есть легковые авто, грузовые, мотоциклы… У каждого из видов техники есть свои параметры, которых нет у других видов. Как лучше организовать склад? Отдельно заводить таблицу для каждого вида или идентифицировать по паре значений типа ID+Название таблицы? Примеры:
Первый случай
ТаблСкладЛегк
IDСкладЛегк
IDЛегк
Кол-во….

ТаблЛегк
IDЛегк
Параметры

ТаблСкладГруз
IDСкладГруз
IDГруз
Кол-во….

ТаблГруз
IDГруз
Параметры


Второй случай
ТаблСклад
IDСкладЛегк
IDМашина
IDТаблица, из который выбираем
Кол-во….

ТаблЛегк
IDЛегк
Параметры

ТаблГруз
IDГруз
Параметры


Sergey_Masloff   (2004-09-30 21:20:00) [1]

Таблицы 2:
1) Иерархическая Класс->Марка->Модель->Модификация
2) Расшифровка (связана с веткой модификаций 1:1)

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


Vemer   (2004-09-30 17:03:00) [2]

обсуждение сущностей с произвольным кол-вом аттрибутов..
есть примеры решений..
http://www.sql.ru/forum/actualthread.aspx?tid=108876


YurikGL   (2004-09-30 13:58:00) [3]


> msguns   (30.09.04 13:42) [10]

Поле типа примечание все равно почти всегда есть.


msguns   (2004-09-30 13:42:00) [4]

Еще замечаньице.
При проектировании стоит остановиться на концепции атомарности свойств. Например, в аспекте поиска или выборок.
Допустим, есть  свойства "Объем двигателя" и "Марка", которые важны для селективности при отображении или поиске (фильтрации), а есть "второстепенные" типа "Цвет", "Кличка шофера", "Кол-во дырок в тенте" и т.д.
Дальше просто: все свойства 1-го типа являются атомарными, т.е. должны найти свое отражение доменами в соотв.стуктурах таблиц (например, в общем справочнике транспортных средств), а св-ва 2-го типа не являются атомарными (т.е. не надо искать по кличке шофера или по "дырявости" кузова. Их мы впихиваем в одно единственное поле VarChar (если инф-ции может быть много, то мемо), куда узер может вводить разную по смыслуинфу новыми абзацами.
Таким образом часто решаются на первый взгляд неразрешимые проблемы.

PS Если даже и требуется искать по "второстепенным" свойствам, то опять же есть для этого средства и в SQL, и в паскале.


Хома   (2004-09-30 13:18:00) [5]

Можно еще попробывать так:
сделать две таблицы, придумать индикатор вида техники. В первой таблицы создать поля по максимуму и там хранить все: и авто и прицепы. Просто неиспозованные поля оставлять пустыми. А в другой хранить индикаторы вида техники и их расшифровку. Помоему так база будет занимать минимум места. Хотя могу и ошибаться.


YurikGL   (2004-09-30 12:04:00) [6]


> Digitman ©   (30.09.04 11:07) [6]


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


Примерно так я и думал :-) Спасибо


Sergey13   (2004-09-30 11:20:00) [7]

Подходов может быть действительно несколько. Можно сделать здоровенный и подробнейший классификатор, можно маленький и обобщенный. Смотря чего хочется. Но если интересует действительно склад автомобилей, то надо еще помнить что это товар имеющий свои номера, которые нужны при продаже/покупке. Так что наверное придется приходовать каждую машину/агрегат отдельно. На каждую запись надо указывать конкретные признаки - цвет, номер двигателя/шасси/кузова, модель двигателя и т.д.

Насчет много/одна таблица. ИМХО лучше одна (даже с избытьчностью) с признаками, потому что разделить всегда проще, чем складывать из разных источников.


Digitman   (2004-09-30 11:07:00) [8]


> YurikGL


вопрос сводится к "правильной" организации номенклатора, на нем завязан весь складской учет, без него никуда

"правильность" номенклатора напрямую зависит от видов и интенсивности будущих запросов к нему на предмет идентификации номенкл.единицы по той или иной комбинации ее свойств (обратная задача поиска) либо выборка свойств по заранее известному идентификатору номенкл.единицы (прямая задача поиска)

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


1008   (2004-09-30 11:06:00) [9]

Может так:

CarTbl
id
type
<
перечень общих параметров
>

LiteCarTbl
<
перечень уникальных параметров для легковых авт
>

HardCarTbl
<
перечень уникальных параметров для грузовых авт
>

<
другие необходимы таблицы
>


Sergey13   (2004-09-30 11:05:00) [10]

Ну и что? Как это скажется на складском хранении единицы товара?


YurikGL   (2004-09-30 11:02:00) [11]


> Sergey13 ©   (30.09.04 10:57) [2]

Ну например, если ввести еще и прицепы, то у них не будет объема двигателя :-)


Sergey13   (2004-09-30 10:57:00) [12]

>У каждого из видов техники есть свои параметры
Какие различия в параметрах важны для склада?


stud   (2004-09-30 10:53:00) [13]

про автосклад тут точно было обсуждение. попробуй поиском


Наверх

Титульная страница Поиск, карта сайта Написать письмо