When creating a PDA you can number to each note to give it a unique PDA address and still have the signer key to ensure that the signer can only see their own notes. This number could be a user input or you could also implement a counter in the program. Having a number value here would also make it easier to index when displaying on an FE. It would look something like this:
#[derive(Accounts)]
#[instruction(number: u64, note: String)]
pub struct CreateEntry<'info> {
#[account(
init,
seeds = [&number.to_le_bytes(), owner.key().as_ref()],
bump,
payer = owner,
space = 8 + 32 + 4 + 8 + 4 + note.len()
)]
pub note: Account<'info, NoteState>,
#[account(mut)]
pub owner: Signer<'info>,
pub system_program: Program<'info, System>,
}