LINUX.ORG.RU

Сообщения henewuge

 

Как передавать данные между приложения.

Форум — Development

В общем есть демон и есть другая прога, которая будет передать данные демону, а он ей. Приложения обмениваются текстовыми и бинарными данными во много потоков.

Варианты

  • socket
  • fifo
  • pipe
  • разделяемая память
  • семафор
  • другой?

В какие случаях использовать каждый из вариант. И какой вариант лучше всего подойдет мне? Почему?

Склоняюсь к использованию сокета, т.к считаю, что в других вариантах нужны будут блокировки. Также хочу сказать, что демон очень медленно обрабатывает данные и не хочется тратить время на tcp socket, то есть придется писать через udp, что может привести к потерям.

 

henewuge
()

Поиск друзей.

Форум — Development

Для каждого пользователя создается своя база, в которой есть friends табличка с одним столбцом user.

user
1
2
3

В этом столбце хранятся ключи на пользователей, которые хранятся в основной таблице.

id | username | ...
1      Tom
2      Max
3      Kate
4      Sara
5       I

Я пользователь с id 5 и мои друзья Tom, Max, Kate. Теперь я хочу найти среди списка друзей Катю, то есть мне нужно делать join.

Таблиц друзей много и держать их все в одной базе я считаю не хорошо. Поэтому я разбил их на базы user_1, user_2, user_n. Теперь я не могу сделать join на таблицу с другой базы и нужно делать 2 запроса - что не хорошо. Как избежать?

Я решил отказаться создать таблицу с друзьями всех пользователь формата:

my_id | friend_id
5          1
5          2 
5          3
2          4
Так как число пользователей и друзей неограничено - таблица начинает быстро расти, да и основная таблица быстро растет.

В качестве решения вижу такое: перекопировать имена с основой таблицы в таблицу друзей, но если пользователь меняет имя, то начинается хаос. Или все таки 2 запроса в разные базы?

 , ,

henewuge
()

Поиск.

Форум — Development

Есть таблица, в которой есть поля: login, firstname, lastname.

Нужно организовать поиск по ним.

Пользователь может вводить следующее:

linus42
Linux T
Linux Torldvalds
Torldvalds
и другое.

То есть не понятно, что он ввел, т.к может ввести часть логина, имени, фамилии, имени и фамилии, фамилии и имени, полный логин, полное имя ...

В общем я не могу составить алгоритм, как узнать, что он ввел, чтобы слать нужный запрос в базу, а то делать кучу OR в sql на поиске не хочу.

 , ,

henewuge
()

Проектировка базы даних.

Форум — Development

Есть пользователь. У пользователя есть друзья. У меня два варианта:

Первый: одна таблица.

user | friends
1         2
1         3
1         4
1         5
2         1
2         3
2         6

Второй: для каждого пользователя своя таблица в базе. И соответственно нужно своя база. Количество друзей неограниченно.

Как лучше? Еще варианты?

 

henewuge
()

RSS подписка на новые темы