[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Один ключ для двух полей mysql
Миша
Имею таблицу
- id
- razdel
- text

Как сделать, чтобы если такой раздел уже имеется - id присваивался общий, а не увеличивался на единицу?

Например

id - 1
razdel - 15
text - текст 1

id - 2
razdel - 26
text - текст 2

id - 1
razdel - 15
text - текст 3

_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
пля....

если id primary key auto_increment то начинай лизать лапу. зима не за горами.


ты как вообще проектируешь бд ??? может почитаешь хоть один раз про нормальные формы ? (там не много)

вместо id используй другое дополнительное поле - в котором и будешь хранить свой псевдо id в виде банки с мёдом.

ещё раз - добавь поле и пиши туда что тебе надо.



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Миша
Цитата (Игорь_Vasinsky @ 28.09.2015 - 20:43)
пля....


tongue.gif Видимо я не правильно выразил свои мысли.

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

На Mysql такое возможно?

_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
разделы

parents
---------------
parent_id
parent_name
parent_description


статьи

articles
---------------
article_id - id статьи
parent_id - ссылка на раздел
article_shorttext
article_text

увеличиваться на 1 или на 10 - решит mysql - всё зависит сколько записей родителей ты удалишь перед созданием нового раздела

auto_increment - в курсе как работает?

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

2е - это чтобы кончить на пчелиный улий - аля - я такой перфекционист - у меня все id разделов идут поочерёдно без пропусков! посмотрите какой я косолапый ?? для этого

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Миша
Что то друг друга мы не понимаем. Найду решение покажу. И да я знаю про auto_increment и primary_key.

_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
Цитата
один ключ,
в твоём понимании

Свернутый текст
user posted image


в моё понимании

Свернутый текст
user posted image


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
Медведь
Так сделать можно, если не использовать примари кей.
Но так делать НЕ НУЖНО, как уже тебе Игорь сказал.

Почему? Очень просто.

id - 1
razdel - 15
text - текст 1 текст 1 .... гуева туча 500 символов {текст 1}

id - 1
razdel - 15
text - текст 2 текст 2 .... гуева туча 500 символов{текст 2}

Ты, когда будешь выводить это в html, ты должен как-то идентифицировать эти блоки, ты что напишешь ?
<div id='текст 1 текст 1  .... гуева туча 500 символов {текст 1} '>текст 1 текст 1  .... гуева туча 500 символов {текст 1} </div>
Засирать кеш браузера наше всё?

Второе:
тебе нужно обновить / удалить одну из этих записей
Ты как запрос будешь составлять?

DELETE FROM texts WHERE text = 'и вот тут 500 символов текста???'

Да тебя SQL сервер так пошлет, что ты долго не вернешься :D

_____________
[продано копирайтерам]
Игорь_Vasinsky
Цитата
что ты долго не вернешься biggrin.gif


в свою берлогу)))

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Миша
Ну это же для примера, чтобы наглядно было я лишнее убрал. Id конечно primary, но не тот который в примере, значит удалить можно легко. А вот как автоматом вставить именно то значение id (из примера), если такой раздел уже есть. Т.е. Если раздел уже существует, то для новой записи нужно вставить ид именно этого раздела, а если нет то увеличить последний максимальный.

_____________
Принимаю заказы, писать в ЛС
Быстрый ответ:

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