Where is the most conventional/best place to add actions for items inside datatable?

Like actions I would say "delete", "edit", "details" and many more maybe. How display that on a desktop application. Some possibilites that I already used could be :

  • Add to the top before the header and display when one item is selected
  • Inside the row at the beginning or at the end
  • With a three dot icon after the first cell like with can see in Sharepoint
  • In the top of the row when you are over with the mouse
  • Other ?

My feedback is as follow...

  • For the first one, it's good to set batch action (things you do to a group of things) or to the table as the whole. But sometimes you see actions for the selected item too. Could be good when you have a lot's like 5 to 10 actions. And it's a good idea because you have space and on your datatable you have just DATA and nothing else more. But for a user it's not always easy to understand the link between actions on the top ouside datatable and the selected item.

  • For the second one, I like it because you directly understand that these actions are for the item. But if you put at the end and your table have several columns or if your sceen is small you must always scroll and you didn't see them directly. If you put at the beginning it could takes a lot's of space and the most important thing (data) are pushed to the bottom and maybe ouside the visible part of the page

  • With the third you can group it and gain some space. Your button will be always visible and it will not takes too much space. But the user didn't see actions directly and for all actions he want to do he must do one more click to open menu then find on the menu what he want then click again. It will takes more time to activate an action than the other solutions.

  • Last one... I m not a big fan it cover data and you think that there is like a glitch on screen.

To resume for me there is no good solution or standards with material design and it is kind of shame...

If you have any article/feedback who speak arround this problem... Please send me !