База данных по высоковольтным трансформаторам.

yurey

Новичок
База данных по высоковольтным трансформаторам.

Всем привет! Кто может посоветовать структуру базы данных по результатам испытаний трансформаторов.
Есть три основные вида трансформаторов:
1. трёхобмоточные.
2. двухобмоточные.
3. трёхобмоточные с расщеплённой обмоткой.
Мне кажется для каждого вида трансформатора необходимо реализовать свою таблицу.
У кого то есть какие то варианты?:confused:
 

zerkms

TDD infected
Команда форума
2 таблицы

1. данные
2. типы трансформаторов

связать 1 с 2 по ид_типа_трансформатора
 

yurey

Новичок
Я в принципе так и сделал. Можно глянуть здесь.
http://transform.org.ua
Логин:admin
Пароль: 0910

-~{}~ 17.03.07 16:32:

Но для разных типов трансформаторов, существует разное колличечтво данных по испытаниям. Вот я и думаю, что надо 6 таблиц вместо 2.
 

zerkms

TDD infected
Команда форума
yurey
как объём испытаний влияет на количество таблиц?
 

yurey

Новичок
Ну например для трёхобмоточнух, больше схем измерений, данных по паспортам трансформаторов, чем в двухобмоточных. Вот посмотри на http://transform.org.ua/modules/isp/index.php?filial=1&stantion=9&disp=1&id=35 например подстанцию
Капитановка и Кировоградская по сопротивлению изоляции.
 

yurey

Новичок
А излишки данных?!

-~{}~ 17.03.07 16:48:

Или пустые поля не важно?
 

Сергей Тарасов

Профессор
Излишек тоже в идеале не должно быть...
Если хочется построить полностью нормализованную форму - придется делать 1 таблицу "трансформаторы" с полем тип, которому будет ассоциирован набор уже конкретных свойств.
 

zerkms

TDD infected
Команда форума
yurey
для хранения в группе таблиц объектов одной иерархии (трансформатор -> 2хобмоточный, 3хобмоточный ...) есть 3 варианта

1. всё в одной таблице. когда ты делаешь столько полей сколько тебе надо и часть из них, в зависимости от типа, будет заполненной или пустой

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

3. полное разделение - информация о каждом из видов хранится в своей отдельной таблице

у каждого из методов есть свои недостатки и плюсы. выбирать тебе.
 

yurey

Новичок
zerkms
А какой самый лучший. Я использую 3. В програмном коде больше писанины, есть такой недостаток. Второй способ, мне кажется неприемлим. Можно потом запутаться в структуре базв данных. Мне кажется третий самый оптимальный. Как ты думаешь?

-~{}~ 17.03.07 17:49:

У меня получается одна таблица паспорта трансформаторов с полями его номера, типа, мощности, напр, места установки и т.д. Другие таблицы по данным испытаний, содержащие информацию об испытаниях, внешний ключ о месте установки, внешний ключ табл. паспортов. Итакое колличество на каждый вид трансформаторров, короче третий способ. Вот и хочу посоветоваться, такой способ лучше други. Потомучто, сначала пробовал первый, но что то он мне не понравился.
 

SiMM

Новичок
> 2. частичное разделение - в одной общей таблице хранится общая для всех трансформаторов информация. а на каждый из типов (или на их совокупность), создаётся по одной дополнительной таблице, которая уточняет общую информацию

Можно же и одной обойтись - с помощью таблицы вида id_трансформатора, имя_поля, значение
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Автор оригинала: Сергей Тарасов
Излишек тоже в идеале не должно быть...
Если хочется построить полностью нормализованную форму - придется делать 1 таблицу "трансформаторы" с полем тип, которому будет ассоциирован набор уже конкретных свойств.
В идеале по каким критериям? По скорости исполнения приложения, по затратам времени на разработку, или по соответствию теории мат множеств?

Для реальной задачи, в которой я предполагаю небольшой объем данных, небольшую нагрузку и небольшое развитие системы в будущем, мой совет - придерживаться одной таблицы, используя нужные поля - до тех пор, пока это не станет неудобно.

А для гибкости структуры приложения вариант, предложенный SiMM, лучший. "id_трансформатора, имя_поля, значение". Впрочем, это немного усложнит код приложения.
 

zerkms

TDD infected
Команда форума
SiMM
можно, я озвучил точку зрения м. фаулера из PoEAA :)
да и как ты сам понимаешь такой подход усложнит несколько запросы, и чуток (?) просадит производительность
 

yurey

Новичок
Автор оригинала: SiMM
> 2. частичное разделение - в одной общей таблице хранится общая для всех трансформаторов информация. а на каждый из типов (или на их совокупность), создаётся по одной дополнительной таблице, которая уточняет общую информацию

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

Shturm

Гигант мысли
Таблица типов испытаний (уникальное наименование испытания)
Таблица типов трансформаторов (уникальное наименование трансформатора)
Таблица соответствия типа трансформатора типу испытания и его результат
(или id конкретного результата, если результатов одного и того же испытания одного и того же типа трансформатора может быть несколько - напр. испытания проводятся регулярно - в этом случае создаем еще таблицу для результатов).
 

yurey

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