49

Таблица БД " Реки мира» содержит следующие поля: название, материк…

d666l 12 августа 2022

Таблица БД " Реки мира» содержит следующие поля: название, материк, длина (в км), максимальная глубина (в м), куда впадает, наличиеводохранилищ. Опишите тип и ширину каждого поля. Определите первичный ключ.

категория: информатика

96

Название: тип text или varchar (text может хранить не более 65 535 символов, varchar может хранить не более 255 символов, поскольку в русском языке нет слов длиной больше 255 символов то тут предпочтительнее varchar) Длины достаточно 80 символов материк: так же типа varchar здесь достаточно длины 50 символов (50 взято для запаса, если вдруг решат изменить это поле скажем на страну в которой протекает река) длина: здесь можно использовать два типа или float если мы хотим получить длину в километрах с точкой, т. Е чтобы можно было записать 655,78 км, или UNSIGNED INT (беззнаковое целое число, беззнаковое потому что длина реки не может быть отрицательной), если нам нужно хранить только целую часть длины в километрахмаксимальная глубина: десь так же или float или unsigned int куда впадает: здесь тип varchar, длиной в 80 символовюналичие водохранилищ: тип bool (1 — есть водохранилища, 0 — нет водохранилищ) Первичным ключом в данной таблице сторого говоря нельзя назвать ни одно поле, потому что поле, назначенное первичным ключом должно иметь уникальное значение для каждой записи. Ни одно из полей не может быть уникальным: — название не подходит потому что например по Калимантану протекает две реки с одинаковым названием — Капуас, значит название реки не может быть первичным ключом.- материк, тут понятно не может, потому что есть много рек текущих по одному материку- длина в километрах: теоретически может выступать как первичный ключ, но нельзя исключить что в мире есть 2 реки с одинаковой длиной.- максимальная глубина: очевидно что нет никаких гарантий что в мире нет рек с одинаковой максимальной глубиной. — куда впадает: в одно и то же место может впадать множество рек, это тоже не подходит под первичный ключ.-наличие водохранилищи тоже не может выступать как первичный ключ, поскольку уже для 3 х рек он не будет уникальным (ведь он принимает только 2 значение TRUE или FALSE) Значит под из перечисленных строк первичным ключом можно назначить длину в километрах, хотя конечно это будет неверно. Поэтому для первичного ключа надо ввести еще одно поле ID, куда записывать число типа UNSIGNED INT, причем применяя атрибут AUTOINCREMENT, т. Е для каждой строки увеличивая ее значение на 1. Тогда можно будет различить две реки даже если у них совпадает 1 или более полей. Чтобы избежать повторного занесения одних и тех же данных можно сделать обработку вносимой информации, перед заполнение в базу данных. В принципе это делается достаточно просто с помощью sql запроса и некоторого обработчика входных данных.

пользователи выбрали этот ответ лучшим
Знаете другой ответ?

Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее...