|  | 
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ Созрел вопрос, как реализовать структуру бд, в которой есть таблицы: - пользователи (ид) - сообщения (ид, ид пользователя, текст) Как сделать, что бы ид сообщения назначался для пользователя? То есть, если первый пользователь написал сообщение, то второй пользователь после написания сообщения получит ид 1 (т.к. это его первое сообщение) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 01:44 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ YolleR, Ключевой вопрос - с какой целью? Если это нужно для упорядочения сообщений по времени появления, то добавьте дату сообщения и сортируйте Да и по ид можно сортировать, если он будет PK, назначаем по счетчику. Если уж так хочется именно нумерацию в таблице именно для пользователя, то добавьте поле номер и при добавлении вычисляйте его по MAX(номер) +1 в пределах этого пользователя. Но не рекомендую этот номер использовать в PK ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 09:22 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ YolleR, В таблице сообщений должно быть два id - id отправителя и id получателя. Если вы посмотрите популярные мессенджеры, то они позволяют просматривать переписку между двумя "абонентами". Без двух id это никак не сделать. Также должно быть два таймштампа (или больше) - отправления и прочтения. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 10:29 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ YolleR, завести поле id, назначить ему авто инкремент. или что не так в этом предложении? для суровых программеров(или убогих бд) подойдёт эта хрень как то так (круглый) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 20:07 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ KreatorXXIYolleR, В таблице сообщений должно быть два id - id отправителя и id получателя. Если вы посмотрите популярные мессенджеры, то они позволяют просматривать переписку между двумя "абонентами". Без двух id это никак не сделать. Также должно быть два таймштампа (или больше) - отправления и прочтения. Вопрос как раз и связан с популярными мессенджерами. Если посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет уникальный ID начинающийся с 0, именно для меня. Сколько бы в базу не добавлялись сообщения от других пользователей, я всегда мог бы получить своё сообщение по ID с 0, и до моего последнего сообщения. Если сравнить с простым ID, то ID сообщения было бы общим для всех, т.е. если до меня в бд уже лежал 1 млн чужих писем, ид моего сообщения будет 1000001. НО, мне необходимо предоставить пользователю возможность перехода по адресу сайт.хх/message/1 (например). То есть проще говоря, у каждого пользователя свои ID сообщений. У вк я так подразумеваю на каждого пользователя генерируются новые таблицы. (Мнение) Есть ли возможность реализовать это простым способом? Проверять MAX(..) и присваивать уникальный ID самостоятельно, кажется затеей сомнительной, хотелось бы ещё вариантов. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 20:48 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ YolleRЕсли посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет уникальный ID начинающийся с 0, именно для меня. Дизайн вконтакта это его проблемы. Кажется, там БД вообще нет, какая-то in-memory nosql свалка. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 20:51 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ Dimitry SibiryakovYolleRЕсли посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет уникальный ID начинающийся с 0, именно для меня. Дизайн вконтакта это его проблемы. Кажется, там БД вообще нет, какая-то in-memory nosql свалка. Вопрос и не был адресован к ВКонтакте. Вопрос в реализации такого вида id ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 20:58 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ YolleRВопрос в реализации такого вида id А в чём вопрос-то? Неужели хранить в таблице пользователей счётчик его сообщений и увеличивать его на единицу при создании нового сообщения это такая запредельная вещь? PS: Чтобы догадаться про вытекающий из этого геморрой тоже вроде как не нужно быть гением. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2019, 22:07 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ YolleR Вопрос как раз и связан с популярными мессенджерами. Если посмотреть на сообщения, например на сайте вконтакте, то каждое моё сообщение имеет уникальный ID начинающийся с 0, именно для меня. Сколько бы в базу не добавлялись сообщения от других пользователей, я всегда мог бы получить своё сообщение по ID с 0, и до моего последнего сообщения. Это вопрос реализации. Может быть этот id не хранится, а считается на лету. В принципе, можно и хранить. Не вижу особо проблем. Смысл хранения следующий. Не относящийся к Вашей проблеме. Как пример. Храним документы в одной таблице для разных подразделений холдинга. Нумерация должна быть своя для каждого подразделения. Поэтому дешевле хранить для каждого подразделения некий номер в базе нежели каждый раз считать максимальный. Может даже не дешевле, а проще. Но, повторюсь, в Вашем случае это не надо. Достаточно id отправителя и получателя. PS. В Ватсаппе я, например, не вижу эти id. Да и вообще, считаю, нонсенс помнить какие-то цифры. Ячеек памяти в мозгу не так много, чтобы помнить, что сообщение в Контакте с id=12345 от Пети Иванова. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 15.08.2019, 10:35 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ Храним документы в одной таблице для разных подразделений холдинга. Нумерация должна быть своя для каждого подразделения. Поэтому дешевле хранить для каждого подразделения некий номер в базе  нежели каждый раз считать максимальный . Может даже не дешевле, а проще.  Да это жесть вообще, считать SELECT (MAX)+1 в многопользовательских СУБД. Неужели ктото досихпор такие корявые реализации делает? Сериализуемый счётчик должен быть. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.08.2019, 12:13 |  | ||
| 
Индивидуальное id для пользователя | |||
|---|---|---|---|
| #18+ YolleRDimitry Sibiryakovпропущено... Дизайн вконтакта это его проблемы. Кажется, там БД вообще нет, какая-то in-memory nosql свалка. Вопрос и не был адресован к ВКонтакте. Вопрос в реализации такого вида id Я могу ошибаться, но мой опыт подсказывает, что ваша проблема в том, вы представляете показанное на экране в других системах в точности соответствующее логике внутреннего хранения. Оторвите одно от другого в голове и допустите наличие алгоритмической прокладки между показом и хранением и способы реализации начнут у вас в голове появляться пока не остановитесь и не скажите что все они правильные, потому что ваши и давай ка я сегодня выберу например такой. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 15.09.2019, 07:10 |  | ||
|  | 

| start [/forum/topic.php?fid=32&msg=39849077&tid=1539908]: | 0ms | 
| get settings: | 11ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 55ms | 
| get topic data: | 12ms | 
| get forum data: | 4ms | 
| get page messages: | 55ms | 
| get tp. blocked users: | 2ms | 
| others: | 238ms | 
| total: | 395ms | 

| 0 / 0 | 
