powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Индивидуальное id для пользователя
11 сообщений из 11, страница 1 из 1
Индивидуальное id для пользователя
    #39849040
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Созрел вопрос, как реализовать структуру бд, в которой есть таблицы:
- пользователи (ид)
- сообщения (ид, ид пользователя, текст)

Как сделать, что бы ид сообщения назначался для пользователя?
То есть, если первый пользователь написал сообщение, то второй пользователь после написания сообщения получит ид 1 (т.к. это его первое сообщение)
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849077
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YolleR,

Ключевой вопрос - с какой целью?
Если это нужно для упорядочения сообщений по времени появления, то добавьте дату сообщения и сортируйте
Да и по ид можно сортировать, если он будет PK, назначаем по счетчику.
Если уж так хочется именно нумерацию в таблице именно для пользователя, то добавьте поле номер и при добавлении вычисляйте его по MAX(номер) +1 в пределах этого пользователя. Но не рекомендую этот номер использовать в PK
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849100
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleR,

В таблице сообщений должно быть два id - id отправителя и id получателя. Если вы посмотрите популярные мессенджеры, то они позволяют просматривать переписку между двумя "абонентами". Без двух id это никак не сделать. Также должно быть два таймштампа (или больше) - отправления и прочтения.
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849466
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleR,

завести поле id, назначить ему авто инкремент.
или что не так в этом предложении?

для суровых программеров(или убогих бд) подойдёт эта хрень

как то так
(круглый)
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849489
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXIYolleR,

В таблице сообщений должно быть два id - id отправителя и id получателя. Если вы посмотрите популярные мессенджеры, то они позволяют просматривать переписку между двумя "абонентами". Без двух id это никак не сделать. Также должно быть два таймштампа (или больше) - отправления и прочтения.

Вопрос как раз и связан с популярными мессенджерами.
Если посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет уникальный ID начинающийся с 0, именно для меня. Сколько бы в базу не добавлялись сообщения от других пользователей, я всегда мог бы получить своё сообщение по ID с 0, и до моего последнего сообщения.

Если сравнить с простым ID, то ID сообщения было бы общим для всех, т.е. если до меня в бд уже лежал 1 млн чужих писем, ид моего сообщения будет 1000001. НО, мне необходимо предоставить пользователю возможность перехода по адресу сайт.хх/message/1 (например). То есть проще говоря, у каждого пользователя свои ID сообщений.

У вк я так подразумеваю на каждого пользователя генерируются новые таблицы. (Мнение)
Есть ли возможность реализовать это простым способом?

Проверять MAX(..) и присваивать уникальный ID самостоятельно, кажется затеей сомнительной, хотелось бы ещё вариантов.
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849490
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleRЕсли посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет
уникальный ID начинающийся с 0, именно для меня.

Дизайн вконтакта это его проблемы. Кажется, там БД вообще нет, какая-то in-memory nosql
свалка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849492
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovYolleRЕсли посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет
уникальный ID начинающийся с 0, именно для меня.

Дизайн вконтакта это его проблемы. Кажется, там БД вообще нет, какая-то in-memory nosql
свалка.

Вопрос и не был адресован к ВКонтакте.
Вопрос в реализации такого вида id
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849510
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleRВопрос в реализации такого вида id

А в чём вопрос-то? Неужели хранить в таблице пользователей счётчик его сообщений и
увеличивать его на единицу при создании нового сообщения это такая запредельная вещь?

PS: Чтобы догадаться про вытекающий из этого геморрой тоже вроде как не нужно быть гением.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39849620
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleR
Вопрос как раз и связан с популярными мессенджерами.
Если посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет уникальный ID начинающийся с 0, именно для меня. Сколько бы в базу не добавлялись сообщения от других пользователей, я всегда мог бы получить своё сообщение по ID с 0, и до моего последнего сообщения.

Это вопрос реализации. Может быть этот id не хранится, а считается на лету. В принципе, можно и хранить. Не вижу особо проблем. Смысл хранения следующий. Не относящийся к Вашей проблеме. Как пример. Храним документы в одной таблице для разных подразделений холдинга. Нумерация должна быть своя для каждого подразделения. Поэтому дешевле хранить для каждого подразделения некий номер в базе нежели каждый раз считать максимальный. Может даже не дешевле, а проще. Но, повторюсь, в Вашем случае это не надо. Достаточно id отправителя и получателя.

PS. В Ватсаппе я, например, не вижу эти id. Да и вообще, считаю, нонсенс помнить какие-то цифры. Ячеек памяти в мозгу не так много, чтобы помнить, что сообщение в Контакте с id=12345 от Пети Иванова.
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39855586
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Храним документы в одной таблице для разных подразделений холдинга. Нумерация должна быть своя для каждого подразделения. Поэтому дешевле хранить для каждого подразделения некий номер в базе нежели каждый раз считать максимальный . Может даже не дешевле, а проще.

Да это жесть вообще, считать SELECT (MAX)+1 в многопользовательских СУБД. Неужели ктото досихпор такие корявые реализации делает? Сериализуемый счётчик должен быть.
...
Рейтинг: 0 / 0
Индивидуальное id для пользователя
    #39861980
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleRDimitry Sibiryakovпропущено...

Дизайн вконтакта это его проблемы. Кажется, там БД вообще нет, какая-то in-memory nosql
свалка.

Вопрос и не был адресован к ВКонтакте.
Вопрос в реализации такого вида id

Я могу ошибаться, но мой опыт подсказывает, что ваша проблема в том, вы представляете показанное на экране в других системах в точности соответствующее логике внутреннего хранения.
Оторвите одно от другого в голове и допустите наличие алгоритмической прокладки между показом и хранением и способы реализации начнут у вас в голове появляться пока не остановитесь и не скажите что все они правильные, потому что ваши и давай ка я сегодня выберу например такой.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Индивидуальное id для пользователя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]