[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простой вопрос по SQL
Xes
Как правильно создавать таблицы.

Напримере таблицы городов

cityen | cityru | .......
Ключом является cityen все запросы проходят по этому ключу.

Необходимо ли делать ниже приведенную структуру где есть еще id, хотя запрос все равно будет проходить по cityen ? Или это лишнее.

id | cityen | cityru | .......




Спустя 4 минуты, 25 секунд (4.02.2012 - 20:32) GET написал(а):
Xes

id это ведь условное обозначение, cityen сделаешь с автоинкрементом и первичном ключом вот тебе и привычное всем id.

Хотя везде пишут что лучше ставить id, я бы поставил, всегда можно это поле тупо убрать, например, когда проект уже готов.

Спустя 6 минут, 8 секунд (4.02.2012 - 20:38) Xes написал(а):
Цитата (A.B.C. @ 4.02.2012 - 17:32)
id, я бы поставил, всегда можно это поле тупо убрать, например, когда проект уже готов.

Я бы не сказал, я 5 раз переделывал сайт и не сказал бы что стоит чтото делать просто так.

Цитата
id это ведь условное обозначение, cityen сделаешь с автоинкрементом

id и cityen разные вещи, cityen - это ключ на латинице он совпадет с частью строки запроса по которой идет поиск.
/gostinitsy-magadan/ magadan - ключ

Спустя 1 минута, 56 секунд (4.02.2012 - 20:40) johniek_comp написал(а):
Надо, конечно, ты же потом будешь данные выводить на страницу? И как бы будешь сортировать? А так если есть id с икрементом то order by `id` тебе выведет их

Спустя 4 минуты, 7 секунд (4.02.2012 - 20:44) bob marley написал(а):
Xes
id по любому нужен!

Спустя 40 секунд (4.02.2012 - 20:45) inpost написал(а):
Xes
Автоинкремент не нужен. Главное самая структура сайта.
Главным уникальным индексом (Primary) - должно быть УНИКАЛЬНОЕ значение.
Если тебе не нужен ID, и ты уверен, что Primary у тебя будет везде одинаковый (а ведь имена городов могут совпасть, а это уже поломка), то можно делать и без ID, съекономишь немного места, на грамм быстрее будет лишь потому, что данных будет меньше.
Тут тебе надо быть уверенным, что главный индекс будет уникальный для каждой записи, и если запись старую удалишь, то новую с таким же именем создавать НЕ БУДЕШЬ(!!!).

Спустя 20 секунд (4.02.2012 - 20:45) GET написал(а):
Цитата
Я бы не сказал, я 5 раз переделывал сайт и не сказал бы что стоит чтото делать просто так.


Я бы тоже так не сказал.

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

ты конкретно сказал

Цитата
хотя запрос все равно будет проходить по cityen


Цитата
И как бы будешь сортировать? А так если есть id с икрементом то order by `id` тебе выведет их


id это просто условное обозначение к которому все привыкли можно назвать его хоть, как может такое быть что логика скрипта не ттребует наличия в таблице id разве нет? Зачем тогда просто так загружать таблицу? Но удалить никогда не поздно.

Спустя 2 минуты, 1 секунда (4.02.2012 - 20:47) inpost написал(а):
Цель ID (автоинкремент) - создание УНИКАЛЬНОСТИ записи даже после её удаления из БД. Удалишь запись с ID=100, и больше НИКОГДА В ЖИЗНИ у тебя не будет ID=100. Вот это называется целостность структуры БД. Если ты будешь использовать уникальным имя, то ты должен быть уверен, что это имя точно будет уникально на все времена.

Спустя 3 минуты, 26 секунд (4.02.2012 - 20:50) GET написал(а):
Цитата
id это ведь условное обозначение, cityen сделаешь с автоинкрементом и первичном ключом вот тебе и привычное всем id.


Спустя 3 минуты, 26 секунд (4.02.2012 - 20:54) johniek_comp написал(а):
что вообще за разговор, нужен не нужен? нужен конечно! в твоем случае тоже

Спустя 1 минута, 31 секунда (4.02.2012 - 20:55) Xes написал(а):
ок.

Спустя 38 секунд (4.02.2012 - 20:56) inpost написал(а):
A.B.C.
Ты не прочитал того, что нужно автору, а это плохо! smile.gif

Всем
Хватит советовать плохое smile.gif Никакого autoincrement, никакого ID. Эти условности придумали для нубов, которые не умеют работать с базами данных, чтобы в первый день не сесть в горшок с головой smile.gif

Спустя 1 час, 55 минут, 27 секунд (4.02.2012 - 22:51) Лена написал(а):
Если поставить на cityen уникальность, новую запись со значением, которое уже есть в базе, уже не вставишь, будет довольно популярная ошибка Duplicate entry for key... Id для того и придумали числовой, чтобы ни при каких условиях не создавалась коллизия.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.