|
Индивидуальное 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&fpage=4&tid=1539908]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 244ms |
total: | 402ms |
0 / 0 |