Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Вниз

Типы в InterBase   Найти похожие ветки 

 
GILforever   (2003-08-02 02:29) [0]

Есть-ли логический временные (не DateTime) типы полей в InterBase"е, если нет, то как лучше их создавать?


 
default   (2003-08-02 03:03) [1]

обычно VARCHAR(1)
хотя на эту тема даже статья где-то была и там советовали поступать по-другому...


 
GILforever   (2003-08-02 03:15) [2]

извините, забыл поставить и между логическим и временным, а временной как, если varchar(5), то как проверять символы?


 
Desdechado   (2003-08-02 16:36) [3]

1. логический отсутствует, можно исп-ть INTEGER CHECK IN(0,1) - он самый быстрый
2. в IB5 нет просто даты, есть в IB6, Firebird(бесплатный) - но только для диалекта 3
3. читать лучше на www.ibase.ru

2 default
VARCHAR(1) - глупость полная, ибо нет смысла экономить оконечные пробелы, если их нет - тогда уж CHAR(1)


 
ZrenBy   (2003-08-02 16:54) [4]

А зачем CHECK IN(0,1) ?

Может просто 0 = FALSE, не 0 = TRUE ?

т.е. имеет ли смысл следующее

update ... set
( select count(*) А зачем CHECK IN(0,1) ?

Может просто 0 = FALSE, не 0 = TRUE ?

т.е. имеет ли смысл следующее

update ... set
BOOL_EXISTS = (select count(*) from ...)

т.е. 0 - нету, 1,2,...,25,... и т.д. - есть ?

Или это плохой стиль ?


 
VID   (2003-08-02 17:14) [5]

1. создай домен , назови его како хочешь, главное что бы в названии было слово BOOLEAN, а типа данных - INTEGER
сделай для него условие проверки CHECK IN(1,0) - для того что бы оно по-настоящему было логическим, а не чёрт-знает каким.

2. Все поля в таблицах бд, которые должны быть логическими описывай с помощью созданного домена.

3. если используешь FIBPlus, то дальнейших проблем с использованеим этих полей не будет...

4. А почему ты используешь IB5.x ?


 
kaif   (2003-08-02 17:42) [6]

Присоединяюсь. Использовать INTEGER в качестве boolean себя оправдывает (по скоростям). Правда можно исходить из того, что <>0 это True. ( 1,0) Присоединяюсь. Использовать INTEGER в качестве boolean себя оправдывает (по скоростям). Правда можно исходить из того, что <>0 это True. Самое главное, что я заметил, что лучше всегда объявлять этот тип NOT NULL . Иначе потом гимора не оберешься в логике. Не знаю, сработает ли CHECK IN(1,0) одновременно как пооверка на NOT NULL? ВИдимо, должна. Я редко CHECK использую.:(


 
GILforever   (2003-08-03 06:48) [7]

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


 
VID   (2003-08-04 01:26) [8]

Допустим у тебя объявлено строковое (Char или VarChar) поле длиной 25 символов.
Разница между VarChar и Char заключается в том, что в поле типа Char на самом деле хранятся 25 символов, т.е. если ты поместил в это поле 10 каких нибудь символов, то реально в поле будут записаны эти 10 символов + 15 пробелов. Чувствуешь как толстеет бд ? ;) А вот VarChar этой фигнёй не страдает, и если ты записываешь в поле VarChar(25) 10 символов, то именно столько символов и будет хранится в этом поле, и лишнее место на диске занято не будет...
-------------------------------------
В клонах IB6.x есть тип TIMESTAMP это тип ДАТА/ВРЕМЯ
Отсюда мораль: переходи на IB6.x или ещё лучше на YAFFIL если сервер будет только на Windows-системах.
-------------------------------------
FIBPlus - компоненты доступа к данным GDB (баз данных INTERBASE)
Неплохая штука, хотя здесь конечно играет роль моё субъективное мнение, я просто другие компоненты не использую, FIBPlus не бесплатен.
-------------------------------------end.


 
HSolo   (2003-08-04 09:54) [9]

Насчет char / varchar:

Trailing blanks
InterBase compresses trailing blanks when it stores fixed-length strings,
so data with trailing blanks uses the same amount of space as an equivalent
variable-length string. When the data is read, InterBase reinserts the blanks. This saves
disk space when the length of the data items varies widely.
(c) The InterBase Data Definition Guide

Т.е база не пухнет и лишнее место не расходуется. Разница лишь в том, что будет прочитано - то ли (в примере от VID © (04.08.03 01:26)) только 10 символов, то ли 10 символов + 15 пробелов.


 
Ru   (2003-08-08 11:41) [10]

в InterBase7 вроде ввели boolean тип данных


 
Anatoly Podgoretsky   (2003-08-08 11:43) [11]

В версии 7


 
MXA   (2003-08-08 16:04) [12]

и чем же 6 так отличается от 5 так, чтобы там что-то было не понятно?

А если ты "не слишком силен в интербейзе", считай что firebird - практически то же самое.

>ответ на вопрос как создать тип времени я так и не услышал!!
скажи чем DateTime не устраивает, может че и придумаем


 
Desdechado   (2003-08-09 19:03) [13]

> ответ на вопрос как создать тип времени я так и не услышал
тип TIME есть тоже только начиная с IB6, Firebird, но опять же - только для 3 диалекта.
3 диалект - это расширение возможностей по отношению к диалекту 1 (в IB5.x и ниже есть только 1 диалект, в IB6 и выше - 1 и 3-й)
подробнее - www.ibase.ru



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.018 c
1-1390
imp403
2003-08-16 12:57
2003.09.01
64x Icon


1-1380
_Alex_
2003-08-12 16:39
2003.09.01
Toolbar и Popupmenu, bug?


14-1552
SPeller
2003-08-12 06:23
2003.09.01
Зарплата чиновников


7-1695
Chieftain
2003-06-18 18:26
2003.09.01
Есть *.vxd - файл. Как заставить систему видеть *.vxd файл?


4-1709
Andre
2003-06-28 02:39
2003.09.01
Иконка в трее





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский