Я делаю тест ниже, чтобы попытаться узнать больше о LINQ to SQL.
У меня есть таблица действий, которая содержит идентификатор активности, идентификатор родителя, тип.
Тип используется в качестве значения дискриминатора, чтобы указать, является ли это действием, задачей или проектом.
У меня есть класс Activity, Task и Project, которые наследуют от Activity, для Task кажется, что наследовать от Project семантически неправильно, но для сокращения избыточных данных это казалось лучшим способом, я могу либо изменить имя этого класса или разделить их.
У класса Activity нет свойства parentId, но класс Task будет использовать parentId в качестве projectId для связи с классом Project.
Я приложил снимок экрана с таблицами и моим dbml, а также диаграммой классов. Из диаграммы классов видно, что это лишь более простая реализация. У меня нет подзадач, задач в разных проектах и т. Д. Я Я также игнорирую пользовательскую часть этой системы, потому что это всего лишь прототип. Поэтому игнорируйте класс менеджера, и я не буду использовать роли. Я использую только жестко закодированных тестовых пользователей.
У меня есть список вещей, о которых я хотел спросить.
1. Все мои задачи требуют ProjectId, так как это parentID из класса активности. Как эта установка работает с классом Project? Как вы можете видеть, в данный момент между ними нет никакой связи. Должен ли я создавать свойство для Project? как это работает, когда ActivityId потенциально является также идентификатором проекта, когда речь идет о классе Project?
Вы можете видеть класс ActivityTime, который должен быть только для отслеживания времени, затраченного на задачу, вы можете видеть, что это может быть связано с таблицей UserActivity, но мне интересно, как это делается только для задач, а не для всех Деятельность?
Вы также можете видеть активность проекта, извините, этот класс также должен наследовать от класса Activity, который я пропустил при загрузке изображения. Это относится к таким вехам, когда деятельность, в которой нет времени или пользователя, должна иметь связанный проект.
У кого-нибудь есть идеи о том, чего я пытаюсь достичь? я захожу слишком далеко со всем этим? Спасибо за любую помощь :) Извините, если не хватает подробностей, я старался быть кратким, не вдаваясь в полный список бизнес-требований, которые я имел в виду для этой тестовой системы.
РЕДАКТИРОВАТЬ: Я просто констатирую очевидное, но, пожалуйста, скопируйте расположение изображения, чтобы лучше рассмотреть.
альтернативный текст http://img134.imageshack.us/img134/1199/tmss.jpg