Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Свин=)
52 / 24 / 2
Регистрация: 12.05.2011
Сообщений: 398
#1

Ключевое поле делать текстовым, можно или нельзя?

31.05.2013, 13:31. Просмотров 1957. Ответов 7
Метки нет (Все метки)

Добрый день,у меня вопрос,может ли ключевое поле содержать текстовые значения?? как изображено на схеме.

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

0
Миниатюры
Ключевое поле делать текстовым, можно или нельзя?  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 13:31
Ответы с готовыми решениями:

Можно ли сделать составное уникальное поле (ключевое)
Небольшая пред история... Я работаю в производстве, все поступающие заказы...

Ключевое поле счетчик или текст?
Тут http://www.cyberforum.ru/ms-access/thread1746262.html возник вопрос что...

Ключевое поле
В форму в три поля вводится ФИО заявителя. Ключевое поле состоит из 1-х трех...

Делать модуль или можно обойтись?
Передо мной поставили задачу проверить БД. Надо проверить одно цифровое поле....

Ключевое поле: ГОД
Всем доброе время суток, как вам такая задачка: Возможно ли сделать таблицу, с...

7
mobile
Эксперт MS Access
22561 / 12879 / 2631
Регистрация: 28.04.2012
Сообщений: 14,085
31.05.2013, 13:49 #2
Может. Но с числовыми ключами быстрее. А зачастую и надежнее.
1
GenaY
382 / 208 / 5
Регистрация: 29.05.2013
Сообщений: 336
01.06.2013, 20:24 #3
Ключевое поле служит для однозначной идентификации строки в таблице и не предназначено нести смысловую нагрузку. Другими словами, его не должно быть видно в интерфейсе. Лучше всего для этого подходит числовой тип.

На примере таблицы [Единицы измерения] попробую пояснить свою мысль. У вас там одно поле "Единица измерения" текстовое и в связанной таблице тоже текстовое.
Правильнее в таблице [Единицы измерения] иметь два поля, первое это "КодЕдиницыИзмерения" (ключевое, длинное целое), и "ЕдиницаИзмерения" (текстовое). А в связанной таблице "КодЕдиницыИзмерения" (числовое).

В дальнейшем, можно будет через запрос подменить КодЕдиницыИзмерения на "ЕдиницаИзмерения"
1
Свин=)
52 / 24 / 2
Регистрация: 12.05.2011
Сообщений: 398
01.06.2013, 20:25  [ТС] #4
Цитата Сообщение от GenaY Посмотреть сообщение
Ключевое поле служит для однозначной идентификации строки в таблице и не предназначено нести смысловую нагрузку. Другими словами, его не должно быть видно в интерфейсе. Лучше всего для этого подходит числовой тип.

На примере таблицы [Единицы измерения] попробую пояснить свою мысль. У вас там одно поле "Единица измерения" текстовое и в связанной таблице тоже текстовое.
Правильнее в таблице [Единицы измерения] иметь два поля, первое это "КодЕдиницыИзмерения" (ключевое, длинное целое), и "ЕдиницаИзмерения" (текстовое). А в связанной таблице "КодЕдиницыИзмерения" (числовое).

В дальнейшем, можно будет через запрос подменить КодЕдиницыИзмерения на "ЕдиницаИзмерения"
ну вот а почему правильней??а так работать не будет оно чтоли?в чем ошибка?
0
mobile
Эксперт MS Access
22561 / 12879 / 2631
Регистрация: 28.04.2012
Сообщений: 14,085
01.06.2013, 20:56 #5
Цитата Сообщение от Свин=) Посмотреть сообщение
ну вот а почему правильней??а так работать не будет оно чтоли?в чем ошибка?
Это вечная тема: "Суррогатные ключи vs естественные" :-)

Тема очень большая и споры не утихают. Погуглите "Суррогатные ключи vs естественные".

Пример. В таблице есть Поле ФИО (неважно, одно или три поля) и, казалось бы, можно сделать его ключевым. Но!
1. Могут быть полные тезки и тогда второй тезка уже не войдет в таблицу
2. При наборе текста, особенно длинных строк, очень вероятны ошибки. Вводится "Иванов Иван Иваныч", а в таблице есть "Иванов Иван Иванович". И случайная ошибка ввода создает новый (и неверный) экземпляр записи.

Именно поэтому я, как и многие другие, предпочитаю суррогатный ключ, например счетчик, естественному ФИО.

Но далее вдаваться в спор на эту тему откровенно не желаю. Если хотите, заведите топик в разделе "Священные войны" - http://www.cyberforum.ru/holywars/ Там на эту тему точно найдутся приверженцы обоих точек зрения.
1
GenaY
382 / 208 / 5
Регистрация: 29.05.2013
Сообщений: 336
01.06.2013, 21:15 #6
Цитата Сообщение от Свин=) Посмотреть сообщение
ну вот а почему правильней??а так работать не будет оно чтоли?в чем ошибка?
Просто база будет больше по размеру и будет медленнее работать. Слово занимает на диске больше места чем число. Отбирать записи по числу быстрее чем по тексту.

Можно оставить так, но со временем если базой будете пользоваться, придется оптимизировать скорость выполнения. Потом это будет сложнее сделать. Лучше сразу.
1
Свин=)
52 / 24 / 2
Регистрация: 12.05.2011
Сообщений: 398
01.06.2013, 21:17  [ТС] #7
Цитата Сообщение от GenaY Посмотреть сообщение
Просто база будет больше по размеру и будет медленнее работать. Слово занимает на диске больше места чем число. Отбирать записи по числу быстрее чем по тексту.

Можно оставить так, но со временем если базой будете пользоваться, придется оптимизировать скорость выполнения. Потом это будет сложнее сделать. Лучше сразу.
ее бы сделать)защитить и забыть)

Не по теме:

Рядом есть тема моя,про склад базу данных)выручайте))а то полный залет...

0
GenaY
382 / 208 / 5
Регистрация: 29.05.2013
Сообщений: 336
01.06.2013, 21:27 #8
Тогда понятно.
Только у таблиц Состояние склада и Товары, связь должна быть один к одному, а не один к многим.
Или, просто поле "Фактическое количество" перенести в таблицу Товары.

Если я правильно понял смысл названия "Состояние склада"
1
01.06.2013, 21:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 21:27

Правильное ключевое поле таблицы
Добрый день! Вот, везде пишут, что надо "Код" делать ключевым полем таблицы. А...

Как добавить ключевое поле к таблице?
Вопрос в названии темы... именно ключевое . СУБД Access.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru