Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

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
Статус: Не в сети
Регистрация: 07.10.2003
Откуда: Russia, Moscow
распиши подробней и понятнее, и без сокращений. Имена таблиц использовать не надо, одну общую для разных видов модулей.

_________________
В поиске включайте "Искать все слова". Избегайте многоточий.
Зачем нужен разгон? http://tsc.overclockers.ru


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 29.12.2004
[POMAH]
в теории БД - есть куча вариантов решения.
1. Одна реляционная таблица
2. Вертикальная таблица (частный случай реляционной)

Я бы лично использовал первый вариант.

_________________
Роль сумашедшего очень удобна - ты не в себе, но себе на уме.


 

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


 

Member
Статус: Не в сети
Регистрация: 08.06.2005
Откуда: Питер
Фото: 0
armadillo, спасибо, попробую сделать макет БД, ваше решение должно подойти.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan