Jacob has shared a partial model. I don't think it's necessary to criticise him for the things he deliberately omitted (except the readings, though they're still not necessary to answer his question). You address everything except his question.
[quote user="Ken Evans"]* Object-type names should not include spaces.- If ...
Very droll, but quite straightforward Ken, since text strings are quoted.
See whether this tickles your fancy...
each Word is written as a String;
each Spacing is written as an Integer in mm;
each Position is written as an Integer;
each Sign is identified by its ID;
each Sign Word is where
some Sign ...
Although it's valid ORM, it won't work in CQL - "and" is reserved as a clause conjunction. That's probably not a problem for you, but it does come up in other cases too, like "Person is in command and control of Platoon", etc.
If the fact type is "City(1) is in the same country as City(2)" then you can see that's elementary. Item (j) in the exercise has the same fact type expressed using a reading which contains the word "and". That may be poor form, but it's a valid way of expressing this elementary fact.
Entering join paths requires the "Role Path Editor" which is only in NORMA Pro - not yet publicly available.
[quote user="Ken Evans"][quote user="maubrey"]In some environments almost all tables are given an artificial key[/quote]I follow relational principles and only use surrogate keys when the natural keys are compound and large.
When I have a choice, I include the natural key as it is, but almost always use an identity ...
[quote user="maubrey"]Does anyone use plural names in the DDL and singular in the conceptual model? There are some environments where the convention is to use plural table names and singular columns in the relational view.[/quote]
You want to look closer at Ruby's ActiveFacts generators for CQL. I have Ruby on Rails surrogate-key ...
I managed to get an external exclusion constraint across both roles of each predicate:
That is incorrect, because it allows an email to be alternative for one user, but primary for another.
It also allows the same email to be alternative for any number of users.
You need the exclusion constraint ...
Matt, I get this error quite often in larger models, just selecting and dragging groups of things around, and even without any sample population data. Today I even got a full-fledged crash. It's never been repeatable enough to feel I had something to report, but there's definitely problems.
Thanks Terry. I wasn't sure whether NORMA Pro actually already had the ability to represent a value comparison constraint, but perhaps lacked the graphical representation and/or verbalisation.
In this specific example, the graphical representation would have to rely on the derived FT "seat allocation count"; it's hard to see ...