Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизТеоретический вопрос организации БД Найти похожие ветки
← →
YurikGL © (2004-09-30 10:48) [0]Для примера рассмотрим склад автомобильной техники.
Пусть у нас есть легковые авто, грузовые, мотоциклы… У каждого из видов техники есть свои параметры, которых нет у других видов. Как лучше организовать склад? Отдельно заводить таблицу для каждого вида или идентифицировать по паре значений типа ID+Название таблицы? Примеры:
Первый случайТаблСкладЛегк
IDСкладЛегк
IDЛегк
Кол-во….
ТаблЛегк
IDЛегк
Параметры
ТаблСкладГруз
IDСкладГруз
IDГруз
Кол-во….
ТаблГруз
IDГруз
Параметры
Второй случайТаблСклад
IDСкладЛегк
IDМашина
IDТаблица, из который выбираем
Кол-во….
ТаблЛегк
IDЛегк
Параметры
ТаблГруз
IDГруз
Параметры
← →
stud © (2004-09-30 10:53) [1]про автосклад тут точно было обсуждение. попробуй поиском
← →
Sergey13 © (2004-09-30 10:57) [2]>У каждого из видов техники есть свои параметры
Какие различия в параметрах важны для склада?
← →
YurikGL © (2004-09-30 11:02) [3]
> Sergey13 © (30.09.04 10:57) [2]
Ну например, если ввести еще и прицепы, то у них не будет объема двигателя :-)
← →
Sergey13 © (2004-09-30 11:05) [4]Ну и что? Как это скажется на складском хранении единицы товара?
← →
1008 © (2004-09-30 11:06) [5]Может так:
CarTbl
id
type
<
перечень общих параметров
>
LiteCarTbl
<
перечень уникальных параметров для легковых авт
>
HardCarTbl
<
перечень уникальных параметров для грузовых авт
>
<
другие необходимы таблицы
>
← →
Digitman © (2004-09-30 11:07) [6]
> YurikGL
вопрос сводится к "правильной" организации номенклатора, на нем завязан весь складской учет, без него никуда
"правильность" номенклатора напрямую зависит от видов и интенсивности будущих запросов к нему на предмет идентификации номенкл.единицы по той или иной комбинации ее свойств (обратная задача поиска) либо выборка свойств по заранее известному идентификатору номенкл.единицы (прямая задача поиска)
пока ты не определишься, какие всевозможные запросы к номенклатору планируется выполнять в будущем, рассуждать о его структуре попросту бессмысленно
← →
Sergey13 © (2004-09-30 11:20) [7]Подходов может быть действительно несколько. Можно сделать здоровенный и подробнейший классификатор, можно маленький и обобщенный. Смотря чего хочется. Но если интересует действительно склад автомобилей, то надо еще помнить что это товар имеющий свои номера, которые нужны при продаже/покупке. Так что наверное придется приходовать каждую машину/агрегат отдельно. На каждую запись надо указывать конкретные признаки - цвет, номер двигателя/шасси/кузова, модель двигателя и т.д.
Насчет много/одна таблица. ИМХО лучше одна (даже с избытьчностью) с признаками, потому что разделить всегда проще, чем складывать из разных источников.
← →
YurikGL © (2004-09-30 12:04) [8]
> Digitman © (30.09.04 11:07) [6]
>
> пока ты не определишься, какие всевозможные запросы к номенклатору
> планируется выполнять в будущем, рассуждать о его структуре
> попросту бессмысленно
Примерно так я и думал :-) Спасибо
← →
Хома (2004-09-30 13:18) [9]Можно еще попробывать так:
сделать две таблицы, придумать индикатор вида техники. В первой таблицы создать поля по максимуму и там хранить все: и авто и прицепы. Просто неиспозованные поля оставлять пустыми. А в другой хранить индикаторы вида техники и их расшифровку. Помоему так база будет занимать минимум места. Хотя могу и ошибаться.
← →
msguns (2004-09-30 13:42) [10]Еще замечаньице.
При проектировании стоит остановиться на концепции атомарности свойств. Например, в аспекте поиска или выборок.
Допустим, есть свойства "Объем двигателя" и "Марка", которые важны для селективности при отображении или поиске (фильтрации), а есть "второстепенные" типа "Цвет", "Кличка шофера", "Кол-во дырок в тенте" и т.д.
Дальше просто: все свойства 1-го типа являются атомарными, т.е. должны найти свое отражение доменами в соотв.стуктурах таблиц (например, в общем справочнике транспортных средств), а св-ва 2-го типа не являются атомарными (т.е. не надо искать по кличке шофера или по "дырявости" кузова. Их мы впихиваем в одно единственное поле VarChar (если инф-ции может быть много, то мемо), куда узер может вводить разную по смыслу инфу новыми абзацами.
Таким образом часто решаются на первый взгляд неразрешимые проблемы.
PS Если даже и требуется искать по "второстепенным" свойствам, то опять же есть для этого средства и в SQL, и в паскале.
← →
YurikGL © (2004-09-30 13:58) [11]
> msguns (30.09.04 13:42) [10]
Поле типа примечание все равно почти всегда есть.
← →
Vemer © (2004-09-30 17:03) [12]обсуждение сущностей с произвольным кол-вом аттрибутов..
есть примеры решений..
http://www.sql.ru/forum/actualthread.aspx?tid=108876
← →
Sergey_Masloff (2004-09-30 21:20) [13]Таблицы 2:
1) Иерархическая Класс->Марка->Модель->Модификация
2) Расшифровка (связана с веткой модификаций 1:1)
Учти что одна и та же марка-модель могут повторяться в разных ветках.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c