Member
Статус: Не в сети Регистрация: 08.06.2005 Откуда: Питер Фото: 0
привет всем.
необходимо создать БД в которой ведется учёт неких девайсов. каждый девайс состоит из модулей, набор модулей в различных модификациях девайса может существенно меняться. модули, в свою очередь могуть быть различных типов и в рамках типа различные исполнения. соответственно будут таблицы:
1. модули питания с полями:
- id (PK)
- code (name)
- U_rated
- ... etc
2. процессорные модули с полями:
- id (PK)
- code (name)
- proc_type
- ... etc
вот теперь нужно создать табличку в которой будет храниться инфа о девайсах, проблема в том что я не знаю как в ней поставить FK. единственное что пришло мне в голову это для каждого конкретного модуля задавать два поля: таблица и id в этой таблице. тогда мне не понятно как сделать связи между таблицами для отслеживания целостности. да и вообще идея с двумя полями в качестве FK мне не нравится.
прошу знающих людей помочь советом или ссылкой. спасибо.
Member
Статус: Не в сети Регистрация: 08.06.2005 Откуда: Питер Фото: 0
ок, может давайте пример приведу чтобы не так запутанно было? мне проще по пунктам (да и ссылаться потом удобнее) 1. таблица, содержащая информацию о, например, процессорах: id номер строки, счетчик, будет первичным ключом type тип процессора (Пентиум Д, Селерон Д, Кора 2 Дуо и т.п.) brand производитель (Интел, АМД, ВИА...) freq частота ну и так далее характеристики процессоров 2. далее таблица с инфой о мат. платах id (аналогично) brand производитель cs тип чипсета и т.д. характеристика матерей. 3. схожим образом создаются таблички для памяти, хардов, оптич. драйвов, видях и различного другого железа ***прошу к примеру не придираться, не нормализованы таблички будут, но тут важна идея*** понятно что типов железяк может быть несколько десятков и запихивать все в одну таблицу очень нехорошо (таблица будет иметь огромное число полей, хотя для каждой конкретной записи будет использоваться около 10, т.е. таблица должна быть мало заполненной. да и логически неверно иметь поле "количество PCI слотов" применительно к харду, например) 4. далее собрали комп, естесственно там есть комплектуха разных типов. вот нужно вести учет этих собранных компов,например: конфигурация id=3 имеет процессор id=5, мат. плату id=12, память id=..., причем необходимо также хранить информацию о том в каком слоте что стоит (понятно что проц можно вставить в единственный слот, а вот память возможно в разные) 5. проблема состоит в том как организовать связь таблицы "копмы" со всеми таблицами комплектующих
Николай1979, если под первым вариантом имелось в виду предложение armadillo, то прошу взглянуть на мои аргументы несколькими строками выше если честно не совсем понимаю что имеется в виду под термином "реляционная таблица", как меня учили реляционная от слова "relation" - отношение, это понятие из рел. алгебры. в субд ему полностью соответствует понятие "таблица". поправьте если ошибаюсь соответственно термин "вертикальная таблица" вижу впервые, пойду на эту тему сейчас просвящаться. спасибо
Member
Статус: Не в сети Регистрация: 07.10.2003 Откуда: Russia, Moscow
[POMAH] писал(а):
***прошу к примеру не придираться, не нормализованы таблички будут, но тут важна идея***
и она имхо нехороша.
не надо создавать новую таблицу под новую модель железяки.
есть таблица деталей - где у юнитов свойства, одинаковые для всех - название, производитель, цена, етс.
есть таблица-список свойств, структура: ид, ид_юнита, ид_свойства, название свойства, где хранятся виды уникальных для каждого юнита свойств.
есть таблица значений. ид, ид_юнита, ид_свойства, значение свойства, где хранятся собственно свойства.
При добавлении нового типа юнита добавляется запись в юниты и записи в список уникальных свойств.
_________________ В поиске включайте "Искать все слова". Избегайте многоточий.
Зачем нужен разгон? http://tsc.overclockers.ru
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения