Why does your primary key need business meaning? Any distinct, non-null value uniquely identifies a record and this is the only purpose of a primary key. If you are sure of this requirement you'll need to assign PK values manually (i.e. you can't rely on any database mechanism).
I can't think of a database constraint you could use to force only 50 records in a table. The best you could probably manage is a before insert trigger to raise an error if the count == 50.