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

Вниз

Тип поля, по которому осуществляется связь   Найти похожие ветки 

 
SelfDestructor   (2002-02-26 18:16) [0]

Есть таблица, содержащая 2 поля: код (уникальное текстовое поле, 2 символа) и его описание
Есть другие таблицы, которые связаны с данной.
Вопрос: Нормально осуществлять связь по текстовому полю(оно же маленькое)? Или лучше завести в таблице целочисленный ID и связь осуществлять по нему? Что быстрее?


 
deleon   (2002-02-27 08:47) [1]

Быстрее тут не уместно, а вот нормально - уникальное целочисленное поле!


 
DmitryV   (2002-02-27 10:20) [2]

2deleon: Поясни, пожалуйста, почему "нормально" только целочисленное поле?

2SelfDestructor: по скорости, IMHO, без особой разницы, а вот по мощности ключа и объему хранимых данных - текстовое поле, наверное, лучше...

С уважением


 
KSN   (2002-02-28 15:29) [3]

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


 
Fay   (2002-03-01 05:07) [4]

2DmitryV
4 > 2 ?


 
Dok_3D   (2002-03-01 07:11) [5]

2Dmitry
а вот по мощности ключа и объему хранимых данных - текстовое поле, наверное, лучше...
Что-то не могу понять, в чем же текстовое поле мощнее ?

А вообще, абсолютно согласен с deleon. Нормально - уникальное целочисленное поле! Я бы еще добавил - автоинкрементное.
Навигация по целочисленным полям происходит быстрее.


 
deleon   (2002-03-01 08:55) [6]

К тому-же числовые поля избавлены от транслитерации типа Oem->Ansi, а так-же не затрачивается время на символьное декодирование (в зависимости от реализации СУБД). Для Paradox автоинкремент хорош, но есть недостатки: если случайно удалить master-запись, то восстановить ее практически невозможно с тем-же значением, поэтому предпочтительнее самому генерить уникальное значение в не read-only integer field.


 
Anonim   (2002-03-01 09:49) [7]

По-моему без разницы. Тем более, если уникальное поле является ключом, то зачем вводить еще один?


 
СергейФ   (2002-03-01 11:18) [8]

-> а вот по мощности ключа и объему хранимых данных - текстовое поле, наверное, лучше...
Что-то не могу понять, в чем же текстовое поле мощнее ?

а заложить кодировку "112.12.4576" где первый ряд цифр берёт код (ID) первой таблицы, второй код (ID) другой таблицы и т.д.

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

Ваше численное поле может может такое сделать?


 
Dok_3D   (2002-03-01 11:37) [9]

2СергейФ
>> а заложить кодировку "112.12.4576" где первый ряд цифр берёт >> код (ID) первой таблицы, второй код (ID) другой таблицы и т.д.

Ну ты даешь !!!!!
Это же как такое в голову прийти-то могло ? Ты вообще о ссылочной целостности слышал когда-нибудь ?
Просто нет слов.
Во всех нормальных БД для ссылок на другую таблицу используют отдельное поле для каждой таблицы. Внешний ключ называется.

А время твоих "112.12.4576" уже безвозвратно уходит. Годится только для написания IP-адреса. :))))


 
deleon   (2002-03-01 14:17) [10]

Дерево отлично строится с участием в таблице всего двух целочисленных полей типа ID и LINK и ограничения на количестве ветвей, как в вышеприведенном примере не будет!


 
СергейФ   (2002-03-01 15:17) [11]

Правда я использовал кодировку "112.12.4576" только в одной таблице описывающей один договор с вложенными пунктами и всё, но уверен нашлась бы и масса других применений.

И неосвоенный мною способ построения дерева с участием двух целочисленных полей типа ID и LINK для такой мальнькой задачи казался сложнее.

Может я и не прав, но если идея противоречит общим правилам это не значит, что она не имеет право на жизнь. Все случаи в жизни невозможно описать одним методом.



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

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

Наверх





Память: 0.47 MB
Время: 0.008 c
1-90875
-=Keith Flint=-
2002-03-17 14:52
2002.03.28
Люди добрые, спасите!


3-90768
DDD
2002-03-01 22:17
2002.03.28
Как в ComboBox значения поля из таблицы?


1-90903
Kostya
2002-03-16 16:31
2002.03.28
Получение кода возврата из внешней программы.


3-90812
ОлегЕ
2002-03-04 14:49
2002.03.28
asInt64


1-90837
madcap
2002-03-16 02:54
2002.03.28
Как работать с языками?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский