Это в порядке, чтобы иметь код в корне проекта?

Вы можете получить время последнего разговора между данным пользователем (в моем примере я использую пользователя 1) и любыми другими пользователями, использующими этот запрос:

SELECT CASE WHEN `From` = 1 THEN `To` ELSE `From` END AS other, MAX(Created_at) AS latest
FROM conversations
WHERE `From` = 1 OR `To` = 1
GROUP BY other

Тогда это просто вопрос [ 113], что позволяет получить всю информацию о последнем сообщении между двумя пользователями:

SELECT c.*
FROM conversations c
JOIN (SELECT CASE WHEN `From` = 1 THEN `To` ELSE `From` END AS other, MAX(Created_at) AS latest
      FROM conversations
      WHERE `From` = 1 OR `To` = 1
      GROUP BY other) m
  ON (c.From = 1 AND c.To = m.other OR c.To = 1 AND c.From = m.other) AND c.Created_at = m.latest

Вывод:

iD  From    to  Message     Read    Created_at
3   2       1   blah3       0       2019-01-11 02:17:24
5   1       5   blah5       0       2019-01-11 02:19:24
6   1       3   blah6       0       2019-01-11 02:20:24

Демонстрация на dbfiddle [ 118]

5
задан Jay Bazuzi 22 November 2008 в 12:41
поделиться

5 ответов

Если бы Вы говорите о C# затем, я разделил бы Ваш DAL, BLL, GUI к различным проектам вместо одного проекта. И имейте одно решение. Это вынудит каждый файл кода быть в одном из проектов.

Я добавил пример:

  • Решение: ProjectName
    • Проект: DAL (пространство имен: ProjectName. DAL)
      • Папка: репозитории (пространство имен: ProjectName. DAL.Repositories)
      • Папка: контракты (пространство имен: ProjectName. DAL.Contracts)
      • Файлы: Ваша конфигурация Отображения Объекта
    • Проект: BLL (пространство имен: ProjectName. BLL)
      • Папка: сервисы (пространство имен: проект. BLL.Services)
      • Папка: объекты (пространство имен: проект. BLL.Entities)
      • Файлы: классы/основная деятельность конфигурации МОК Логика
    • Проект: совместно использованный (пространство имен: ProjectName. Совместно использованный)
      • Файлы: Общая общая логика через Ваше целое приложение (например, постоянный InvalidIdentifier)
      • Этот проект не должен ссылаться на другие проекты в решении..
    • Проект: веб-сайт (пространство имен: ProjectName. Веб-сайт)
      • Ваш веб-сайт asp.net UI
    • Проект: Winforms (пространство имен: ProjectName. Winforms)
      • Ваши winforms UI

Если возможный необходимо дать веб-сайт, и winforms проектируют имя относительно приложения.

8
ответ дан 14 December 2019 в 01:20
поделиться

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

1
ответ дан 14 December 2019 в 01:20
поделиться

Единственные файлы, которые я поместил в корневую папку, являются Program.cs и Program.ico (если это - исполняемое приложение).

0
ответ дан 14 December 2019 в 01:20
поделиться

Я не делаю этого, но это не имеет никакого отношения к структуре каталогов (для меня). Я хочу весь свой код в значимых пространствах имен.

0
ответ дан 14 December 2019 в 01:20
поделиться

Я всегда помещал базовый класс для своих исключений проектов в корне.

0
ответ дан 14 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: