|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Добрый день. Подскажите пожалуйста. Есть таблица users и соответствующая ей модель. И есть таблица changes с полями objectType и objectId. objectType - показывает к какой таблице относится запись (В данном случае к users) а objectId id - id в той таблице на которую objectType указывает. Как добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 10:40 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Vladimirzzz, Вы храните историю изменений? Модель это обычно имена сущностей, а не действий. Поэтому непонятно что вы хотите. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 11:36 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123, Да я хочу хранить историю изменений разных сущностей, но не хочу под каждую сущность создавать отдельную сущность изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 11:49 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123, понятно что можно отдельным запросом вытягивать и уже в коде джоинить. Но на голом SQL я бы сделал это одним запросом - вот и здесь хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 11:52 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
VladimirzzzPetro123, Да я хочу хранить историю изменений разных сущностей, но не хочу под каждую сущность создавать отдельную сущность изменений. Одну таблицу для всяких разных сущностей не получится. И EF для этого не создан. Потом, что делать если сущность Адрес состоит из 15 таблиц? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:04 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
VladimirzzzPetro123, понятно что можно отдельным запросом вытягивать и уже в коде джоинить. Но на голом SQL я бы сделал это одним запросом - вот и здесь хочется.ставь в каждой сущности поле IsActual или isDeleted. Но я никогда бы так не делал. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:07 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Vladimirzzz, Просто логируйте кто что делал в таблицу логов. Задача та же, но смысл разный) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:10 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123, Ну 15 таблиц - это не вопрос - я же эту информацию обрабатываю в коде - могу по какой то своей схеме хранить путь к изменяемому полю. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:12 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123, Вся штука в том что мне нужно отобрать измененные записи и предложить их отмодерировать (восстановить удаленное, не принять новое, откатить отдельные измененные поля) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:15 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
VladimirzzzPetro123, Вся штука в том что мне нужно отобрать измененные записи и предложить их отмодерировать (восстановить удаленное, не принять новое, откатить отдельные измененные поля ) Если Петров внес Иванова, а Сидоров записал ему жену и Петров удалил всех его детей. Как восстановишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:29 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Vladimirzzz, Делай премодерацию или заявку на коммит в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:30 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123, Слава богу в основном простые поля. Самый сложный случай - в качестве поля - массив объектов с простыми полями. А то да, можно далеко пойти ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:33 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123Vladimirzzz, Делай премодерацию или заявку на коммит в базу. Ну если бы требования определял я ..... А так горожу какого то монстра с которым три калеки будут работать но "ТАК НАДО!!!" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:36 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Vladimirzzz, Я имхо написал. Делай linq или sql. А обычную CRUD через EF и модель. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:42 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
VladimirzzzА так горожу какого то монстра с которым три калеки будут работатьдвое правят и третий за них зачеркивает)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:43 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123, Еще есть вариант с наследованием и objectType в качестве дискриминатора. Но подозреваю что в базе ef сотворит одну таблицу, но в ней на каждый тип будет по полю вида xxx_id ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 12:55 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
VladimirzzzPetro123, Еще есть вариант с наследованием и objectType в качестве дискриминатора. Но подозреваю что в базе ef сотворит одну таблицу, но в ней на каждый тип будет по полю вида xxx_idда. Я бы не мешал твою историю с основной моделью. class User{ Id, Name } class UserArhiv{ Id, IdOwner Name, DateUpdate } ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 13:27 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Petro123, Спасибо за советы ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2018, 14:07 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Vladimirzzz, идея хранить лог операций в одной таблице/коллекции далеко не новая, вот только при этом не делают так: "добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes" Зачем? VladimirzzzВся штука в том что мне нужно отобрать измененные записи и предложить их отмодерировать (восстановить удаленное, не принять новое, откатить отдельные измененные поля) Дак отберите, в чём проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 10:04 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Добрый день Дмитрий МухVladimirzzz, идея хранить лог операций в одной таблице/коллекции далеко не новая, вот только при этом не делают так: "добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes" А как делают ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 11:28 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
VladimirzzzДобрый день Дмитрий МухVladimirzzz, идея хранить лог операций в одной таблице/коллекции далеко не новая, вот только при этом не делают так: "добавить в модель users поле IsChanged что бы оно читалось из groupBy по таблице changes" А как делают ? Обычно когда открывается экран некой сущности, то там показывается кем и когда она последний раз изменялась. И эти данные не вычисляются по истории, они хранятся вместе с сущностью в полях ModifiedOn, ModifiedBy (UpdatedOn, UpdaterId). А список конкретных изменений запрашивается по требованию по objectId, objectType. Дёргать его для вычисления IsChanged во первых не имеет практического смысла, так как ясень пень люди работают с данными и меняют их. А во вторых - накладно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 12:57 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
Vladimirzzz, вы бы обрисовали некий сценарий использования ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 12:58 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
skyANA, Уточню. Нужен интерфейс в котором модератор может видеть список записей с пометкой новая/измененная (причем измененные и добавленные не им) зайти в запись и принять/отклонить изменения отдельных полей. Можно конечно навешивать на каждую таблицу ModifiedFromUserOn, ... в добавок к ModifiedOn но я подумал что информацию проще тянуть из таблицы changes. В моем случае размеры таблиц не должны стать проблемой. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 13:06 |
|
ef core include fromSql
|
|||
---|---|---|---|
#18+
В принципе я решил задачу таким способом class Changes { ObjectId, ...... } class UserChanges : Changes { [ForegnKey("ObjectId")] User User } class DocChanges : Changes { [ForegnKey("ObjectId")] Doc Doc } ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 13:11 |
|
|
start [/forum/topic.php?fid=17&msg=39749352&tid=1349142]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 263ms |
total: | 419ms |
0 / 0 |