Consider adding validation to InternalId

Consider adding a validation to InternalId to require either namespace_id or project_id

Just in case a usage of InternalId creeps in which is out of namespace and project.

The following discussion from !135241 (merged) should be addressed:

  • @manojmj started a discussion: (+4 comments)

    Table:

    CREATE TABLE internal_ids (
        id bigint NOT NULL,
        project_id integer,
        usage integer NOT NULL,
        last_value integer NOT NULL,
        namespace_id integer
    );

    and the model has

      belongs_to :project
      belongs_to :namespace

    Since this table is used to supply internal ids to projects or namespaces, and since projects/namespaces are cell-local data, this can be too?

/cc @manojmj @DylanGriffith

Edited by 🤖 GitLab Bot 🤖