powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / эти кривые базы данных...
24 сообщений из 49, страница 2 из 2
эти кривые базы данных...
    #32373563
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор нефиг тратить ресурсы на foreign key и его поддержку. Ей богу так - эффективней.

Еще и нормализовать все до опуперия, построить индексы по всем полям на все случаи жизни... А потом думать, а чего так все медленно ворочаецца?...
А что - табличка с записями < 10 так уж сильно будет медленно ворочаться ? :)
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32374145
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
честно говоря при каждом селекте джойнить эту чушь - влом...Чисто по нажатию клавиш - эффективнее .. это раз...
2) предположим что у нас табличка содержит Yes/No, то затраты на хранение такой фигни соизмеримы с тем, еслибы они хранились в таблице по месту назначения.
3) при провере всекий раз дергать foreign key - хм... не думаю что это эффективнее чем constraint или rules
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32374774
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman

зато сурогатный ключ
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32374822
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> зато сурогатный ключ
причем глобальный уникальный идентификатор.
вот заведу справочник полов - всем сообщу гуид всех полов - и пользоваться только ими!
глобальная целостность
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32374824
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedd

А то! ПожготовЪ свою БД к репликации!
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32375173
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Таблица: (вообще-то акцессная, я не знаю как из него ddl выдрать - по-этому через ервин попытался это сделать)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
CREATE TABLE Abiturients(
    AbitID         NUMBER( 38 ,  0 )       NOT NULL,
    IndNum         NUMBER( 38 ,  0 )        DEFAULT  0  NOT NULL,
    EduProg        NUMBER( 38 ,  0 )        DEFAULT  0 ,
    EnterDate      DATE,
    FirstName      VARCHAR2( 30 )        NOT NULL,
    MidName        VARCHAR2( 30 ),
    LastName       VARCHAR2( 30 )        NOT NULL,
    LivePlaceID    NUMBER( 38 ,  0 )        DEFAULT  0 ,
    BirthDay       DATE,
    Sex            NUMBER( 38 ,  0 )        DEFAULT  0 ,
    SocialID       NUMBER( 38 ,  0 )        DEFAULT  0 ,
    DirectID       NUMBER( 38 ,  0 )        DEFAULT  0  NOT NULL,
    EducationID    NUMBER( 38 ,  0 )        DEFAULT  0 ,
    ShoolNum       NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Region         NUMBER( 3 ,  0 )         DEFAULT  0 ,
    Privilege      NUMBER( 38 ,  0 )        DEFAULT  0 ,
    EndDate        NUMBER( 38 ,  0 )        DEFAULT  0 ,
    MedalID        NUMBER( 38 ,  0 )        DEFAULT  0 ,
    LanguageID     NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Victor         NUMBER( 3 ,  0 )         DEFAULT  0 ,
    ArmyID         NUMBER( 38 ,  0 )        DEFAULT  0 ,
    ServiceID      NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Contract       NUMBER( 38 ,  0 )        DEFAULT  0 ,
    CoursesID      NUMBER( 38 ,  0 )        DEFAULT  0 ,
    PreTermID      NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Certificate    NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Average        DOUBLE PRECISION     DEFAULT  0 ,
    Copy           NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Room           NUMBER( 38 ,  0 )        DEFAULT  0 ,
    LevelID        NUMBER( 38 ,  0 )        DEFAULT  0 ,
    GroupID        NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Father         VARCHAR2( 150 ),
    Mather         VARCHAR2( 150 ),
    Address        VARCHAR2( 150 ),
    AddReal        VARCHAR2( 150 ),
    Passport       VARCHAR2( 150 ),
    Status         NUMBER( 5 ,  0 )         DEFAULT  1 ,
    Exam1          NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Exam2          NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Exam3          NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Ball1          NUMBER( 5 ,  0 )         DEFAULT - 1 ,
    Ball2          NUMBER( 5 ,  0 )         DEFAULT - 1 ,
    Ball3          NUMBER( 5 ,  0 )         DEFAULT - 1 ,
    Exams1         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Exams2         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Exams3         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Source1        VARCHAR2( 1 )          DEFAULT  "Э" ,
    Source2        VARCHAR2( 1 )          DEFAULT  "Э" ,
    Source3        VARCHAR2( 1 )          DEFAULT  "Э" ,
    ExApp1         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Exapp2         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    ExApp3         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Enter          NUMBER( 5 ,  0 )         DEFAULT  0 ,
    Shifr1         VARCHAR2( 10 ),
    Shifr2         VARCHAR2( 10 ),
    Shifr3         VARCHAR2( 10 ),
    PRIMARY KEY (AbitID)
);


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




eNose
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32375412
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
радует это:
Код: plaintext
BirthDay       DATE,

а то могло бы быть тоже типа
Код: plaintext
Sex            NUMBER( 38 ,  0 )        DEFAULT  0 ,
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32375471
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще что касается подобных баз где прописываюцца люди.
Почему-то я практически ни у кого не видел, чтоб модель позволяла
создавать псевдонимы customer-ам... А вель смена фамилии или имени - не такое уж редкое явление.
Например: Девушка замуж вышла...или фирма поменяла Устав и стала называться по-другому...
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32375524
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2eNose
э-э-э.... а в чем проблема то с таблицей?
Ну, широкая, странная... немного...
С другой стороны достаточно удобно из такой вот таблицы выкачивать данные в свою систему.
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32375605
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
>> а в чем проблема то с таблицей?
Ну, широкая, странная... немного...
С другой стороны достаточно удобно из такой вот таблицы выкачивать данные в свою систему.

В том то все и дело, что мне очень неудобно с такой структурой работать.
Вернее, не столько неудобно, сколько медленно.
У меня люди - это кучка (21) таблиц, с сохранением истории по всем меняющимся данным (фио, паспорт, пол, прописка, место жительства, ...).
Отдельно к людям идит добавочные таблицы в зависимости от того, кто он: студент, абитуриетн, преподаватель, ...
Вот мне и приходится при конвертации почти для каждой таблицы делать ...where :date beetwen datefrom and dateto (упрощенно). И указывать дату конвертации (мало ли что, вдруг им понадобятся данные месячной давности).




eNose
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32375609
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
В такой широкой таблице, сразу видно - слилось несколько сущностей.
Чтобы строить относительно быстро разные отчеты придется иметь много
индексов, что замедлит операции изменения. Более того, по мере
роста требований к системе придется добавлять новые поля, а => и новые индексы. Короче - чем дальше, тем хуже будет вести себя система.
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32375801
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я хотел ответить локи, да потом подумал что он шутит....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    Exam1          NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Exam2          NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Exam3          NUMBER( 38 ,  0 )        DEFAULT  0 ,
    Ball1          NUMBER( 5 ,  0 )         DEFAULT - 1 ,
    Ball2          NUMBER( 5 ,  0 )         DEFAULT - 1 ,
    Ball3          NUMBER( 5 ,  0 )         DEFAULT - 1 ,
    Exams1         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Exams2         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Exams3         NUMBER( 38 ,  0 )        DEFAULT  1 ,
    Source1        VARCHAR2( 1 )          DEFAULT  "Э" ,
    Source2        VARCHAR2( 1 )          DEFAULT  "Э" ,
    Source3        VARCHAR2( 1 )          DEFAULT  "Э" ,


это не странная таблица, это повод для драки
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32376143
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не шутю я.
Может, я неправильно понял и эта таблица - рабочая в какой-то базе?
Потому что если это - таблица для пердачи данных из одной системы в другую, то поверьте, тому человеку который принимает эти данные, глубоко фиолетово, насколько просто или тяжело ВАМ эти данные предоставить. Еще я думаю, что предоставь Вы ему все свои 21 таблицу - он может начать ругаться словами разными и кричать "Разбирайся сам со своими структурами! И дай мне то, что я попросил" (тем более, что на Оракуле это побыстрее будет, чем на Access)
По поводу постоорения отчетов:

Код: plaintext
1.
select Date,Sum(F1),Sum(F2),Sum(F3) from WideTable group by date

куда как проще чем
Код: plaintext
1.
2.
3.
4.
select T.Date,Sum(T1.F),Sum(T2.F),Sum(T3.F)
from ShortTable T join Tbl1 T1 on T.date = T1.date
.....
group by T.Date
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32376285
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
Оправданья не приняты... не жди от меня прощения, не жди от меня суда..
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32376529
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
2 locky:

Эта таблица - рабочая.
Как с ней работают - не знаю :-(
Знаю только, что раза два в месяц в нее добавляются / убираются некоторые поля




eNose
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32376937
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2eNose
ну... ежели рабочая.... и, особенно, постоянно меняется структура....тады не знаю.... хотя, как правило, все можно объяснить. К примеру, постоянно изменять структуру данных может оказаться дешевле, чем переделывать более-менее работающий комплекс. К тому-же, если нет человека, который данную задачу знает глубоко....
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32409376
Denis A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати о поле "Пол". У медиков есть типы М; Ж; мужской, бывший женский; женский, бывший мужской; не определен. Так что значений целых 5! :-)

а по поводу кривых БД... Смотрел я как-то БД (Interbase) одной софтины бухгалтерской. 500 таблиц с именами ZPL_032 и типа того. Поля аналогичного наименования. DDL-операторы при самых невинных операциях. Ни одного триггера. Ни одной Stored proc. Ни одного FK между таблицами. Всё на честном слове =)
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32410528
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Один мой знакомый делал БД в Interbase для каких-то торговцев недвижимостью и чтобы в форме отображать схему метро завел в одной таблице флаги для каждой станции (150 или 250 штук - не помню точно).
И IB стал валиться. Когда я его спросил, что будет, если не дай бог построят новую станцию, он сказал, что завел пять запасных флагов...
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32412715
zayac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/21581&hl=gather_schema_stats#118784\r
\r
У меня было такое: у администратора была возможность писать отчетные формы для пользователей на псевдо-языке, внутри которых можно было использовать блоки PL/SQL.\r
Администратор в этой фирме уволился и я, как представитель разработчика решаю их проблемы, но что и как - выяснить не у кого. \r
Главбух: Мы часто "зависаем" и тогда нам приходится делать COMMIT.\r
Я: Какой еще COMMIT? (Человек в принциипе слов таких знать не должен)\r
Главбух: Ну форма отчетная, наш старый администратор написал. У нас когда кто-то зависает, то говорит - сделайте COMMIT, и все кто может - запускают эту отчетную форму. Как правило помогает.\r
\r
С плохим предчуствием лезу смотреть эту отчетную форму. Так и есть. Форма состоит из одной фразы\r
PL(\'COMMIT\')\r
Вот и нашелся барабашка который паскудит данные. Пользователь А ставит блокировку; пользователь В натыкается на нее и "зависает"; А "делает COMMIT", а потом решает отменить операцию, откатиться -- и все, данные в ауте.
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32412719
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, какой может быть вызов отчётной формы, пока у вас транзакция не закончилась?

А если вообще, человек чай пойдёт пить. Или у него с сердцем плохо станет? Так и будут блокировки висеть?
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32414507
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--А если вообще, человек чай пойдёт пить. Или у него с сердцем плохо станет? Так и будут блокировки висеть?

Именно так работает Framemaker. По громкоговорящей связи в компании раздается - всем закрыть Framemaker. Потом через несколько минут маты и опять просьба закрыть. Потом идет поиск по кабинетам - кто ушел в отпуск и не закрыл приложение.
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32414617
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что то до меня не доходит....
Begin Transaction стоит в методе загрузки формы, а END Transaction - в методе выгрузки-закрытия формы что ли?

Очень интересно.. иначе как это "у человека с сердцем плохо", а он транзакцию не завершил...
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32414755
AlTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Именно так работает Framemaker"
ничё не понял. Framemaker - это же для того, чтобы тексты набирать, да книжки делать.
...
Рейтинг: 0 / 0
эти кривые базы данных...
    #32414829
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкстати о поле "Пол". У медиков есть типы М; Ж; мужской, бывший женский; женский, бывший мужской; не определен. Так что значений целых 5! :-)
:)) тогда здесь надо log пола в отдлеьную таблицу выносить, можно еще и поле "reason" добавить

...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / эти кривые базы данных...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]