Najpierw nazwij właściciela pojęcia i cyklu życia
Wygenerowany formularz nie ustala znaczenia, invariants, autorytetu, migracji, retencji, integracji ani raportowania. Kontrakt schematu musi je przypisać.
Krótka odpowiedź
Wybierz pole, encję konfigurowalną, moduł domenowy lub system zewnętrzny według własności i zachowania
Użyj pola dla atrybutu niskiego ryzyka na właściwym istniejącym rekordzie; encji konfigurowalnej dla prostego zarządzanego rejestru; modułu lub extension entity dla istotnego zachowania; a systemu zewnętrznego, gdy inny system jest właścicielem rekordu, a Open Mercato odwołuje się do niego lub go synchronizuje. Wygenerowane ekrany i storage nie zastępują projektu domeny.
- Sprawdzono
- 2026-07-14
- Bieżący kod
- 01911d00e28f44cf484d0b1d04860dcfef5370bf (v0.6.5-1202-g01911d00e)
- Najnowszy tag i pakiet
- v0.6.5 · 0.6.5
Ta metoda redakcyjna wspiera planowanie. Nie zapewnia kompletnego schematu, migracji, przeglądu bezpieczeństwa, akceptacji ładu danych ani odbioru produkcyjnego.
Stany dowodu i słownik menedżera
Oddziel dowody wydania, tę rewizję develop, warunki ścieżki, brak dowodu i szeroką narrację dokumentacji.
- 1. released
- 2. reviewed current develop
- 3. pathway or implementation dependent
- 4. not established
- 5. documentation drift
- system entity
- ORM-backed domain entity
- custom field
- configurable entity
- custom record
- extension entity
- definition
- EAV
- JSON document
- field kind
- fieldset
- dictionary
- relation
- source of truth
- schema owner
- migration
- backfill
- compatibility
- tombstone
- stable key
Cztery kształty storage i ich konsekwencje
ORM table
Storage: Module-owned explicit schema and domain APIs
Znaczenie dla menedżera: Strong behavior and contracts; code, migration and module ownership required
EAV custom values
Storage: Definitions plus typed values extend an existing entity
Znaczenie dla menedżera: Low-risk attributes can follow the existing record lifecycle; consumers must integrate the entity id and field utilities
Custom entity JSON documents
Storage: Generic custom_entities_storage records plus definitions
Znaczenie dla menedżera: Useful for simple governed registers; generic CRUD does not provide domain behavior
Linked extension entity
Storage: A code-owned table links to another module entity
Znaczenie dla menedżera: Preserves module ownership for consequential data without altering another module table
Sama deklaracja ce.ts nie zapewnia storage generic custom record. Bieżąca klasyfikacja jest ORM-first: systemowe rekordy modułu pozostają w jego tabelach i API domenowym, a trasa generic records je odrzuca.
Inwentarz typów pól w bieżącym kodzie
Zapisz zastosowanie, cardinality single lub multiple, opcje lub zależność, wygenerowany edytor, format storage, filter, sort, search, export i przykład odbioru. Dostępność i parity zależą od ścieżki.
- 1. text
- 2. multiline
- 3. integer
- 4. float
- 5. boolean
- 6. select
- 7. currency
- 8. relation
- 9. attachment
- 10. dictionary
- 11. date
- 12. datetime
Macierz ścieżek konfiguracji
admin UI
- entity registration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- field definitions: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- defaults: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- validation: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- fieldsets: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- dictionaries: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- relations: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- encryption: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- indexing: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- lifecycle and migration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
authenticated API
- entity registration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- field definitions: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- defaults: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- validation: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- fieldsets: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- dictionaries: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- relations: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- encryption: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- indexing: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- lifecycle and migration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
entities CLI
- entity registration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- field definitions: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- defaults: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- validation: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- fieldsets: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- dictionaries: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- relations: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- encryption: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- indexing: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- lifecycle and migration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
code-first ce.ts
- entity registration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- field definitions: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- defaults: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- validation: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- fieldsets: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- dictionaries: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- relations: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- encryption: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- indexing: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- lifecycle and migration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
app or module code
- entity registration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- field definitions: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- defaults: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- validation: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- fieldsets: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- dictionaries: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- relations: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- encryption: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- indexing: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
- lifecycle and migration: zapisz jeden stan poparty źródłem (bieżący, częściowy, właściwy dla konkretnej zależności, zależny od wdrożenia, nieudostępniony albo niepotwierdzony).
UI, API, CLI, ce.ts i kod aplikacji nie udostępniają identycznych opcji. Bieżące wygenerowane powierzchnie obejmują metadata, opcjonalny sidebar, definicje, listę rekordów, formularze gdy są pola, search, filters, sort, export i API. Nie dostarczają automatycznie dashboardów, workflow, commands, approvals, notifications, transactions, specjalistycznych uprawnień, integracji, raportów uzgodnionych ani migracji. Strony CRUD pokazują pola tylko wtedy, gdy integrują entity id i utilities.
Macierz klasyfikacji
1. Use a custom field
An additional low-risk attribute belongs to an existing record with the right owner and lifecycle. Stop if it introduces a new independent object, consequential state or cross-record invariant.
- ownership
- lifecycle
- state transitions
- validation
- relations
- transactionality
- permissions
- volume
- performance
- integrations
- reporting
- migration
- retention
- maintenance
2. Use a configurable custom entity
A simple organization-scoped register is mostly create, view, edit, filter, search and export. Stop if generic permissions, JSON records or generated CRUD cannot satisfy the whole lifecycle.
- ownership
- lifecycle
- state transitions
- validation
- relations
- transactionality
- permissions
- volume
- performance
- integrations
- reporting
- migration
- retention
- maintenance
3. Build a domain module or extension entity
The object has transactions, state transitions, invariants, complex relations, specialist authority or a long-lived contract. Stop until code, operations, migrations and acceptance ownership are funded.
- ownership
- lifecycle
- state transitions
- validation
- relations
- transactionality
- permissions
- volume
- performance
- integrations
- reporting
- migration
- retention
- maintenance
4. Keep or reference an external authority
Another system must own specialist, regulated, high-scale or authoritative data. Stop until synchronization, identity, acknowledgement and reconciliation are defined.
- ownership
- lifecycle
- state transitions
- validation
- relations
- transactionality
- permissions
- volume
- performance
- integrations
- reporting
- migration
- retention
- maintenance
Zatrzymaj konfigurację przy niejasnym właścicielu, duplikacie pojęcia, nieznanym źródle, niestabilnym znaczeniu, wymaganej unikalności, regule cross-record, transakcji wieloetapowej, istotnym stanie, złożonej relacji many-to-many, specjalistycznym dostępie, dużym wolumenie zapisu, regulowanej retencji, zamrożonej historii lub nieplanowanej migracji.
Kontrakt schematu
Zdefiniuj znaczenie, właściciela, kompatybilność i dowód odbioru, zanim konfiguracja stanie się kontraktem.
- 1. business question
- 2. plain-language meaning
- 3. business owner
- 4. source of truth
- 5. entity owner
- 6. stable entity id and field key
- 7. display label and translations
- 8. data type
- 9. cardinality
- 10. required, default and null rule
- 11. allowed values or dictionary
- 12. validation rules
- 13. cross-field and domain rules
- 14. relation target and deletion behavior
- 15. tenant and organization scope
- 16. read roles
- 17. write roles
- 18. sensitivity and encryption
- 19. search, filter and sort needs
- 20. list and form needs
- 21. indexing
- 22. import, export and API consumers
- 23. reporting grain
- 24. history, audit and undo
- 25. volume and retention
- 26. migration and backfill
- 27. compatibility
- 28. change approver
- 29. deprecation and removal
- 30. reconciliation
- 31. acceptance owner and evidence
Przykład strukturalny do adaptacji
Założenie: jeden abstrakcyjny kontrolowany atrybut należy do istniejącego rekordu. Jego key pozostaje stabilny, choć label, tłumaczenie i kolejność mogą się zmieniać. Kontrakt nadal wymaga typu, reguł null i empty, właściciela dictionary, zakresu, ról, importu, raportowania, backfill, uzgodnienia i dowodu usunięcia. Nie podano realnego key ani value.
Entity id, field key, label, tłumaczenie, kolejność i value to różne pojęcia. Keys są kontraktami integracyjnymi; rename jest decyzją migracyjną. Jawnie zdecyduj null kontra empty, single kontra multiple, defaults, units, currency, precision, date kontra datetime i timezone.
Wartości kontrolowane, relacje i walidacja
Static options, dictionaries i dynamic options wymagają właściciela źródła, aliases, tłumaczeń, polityki inline creation, retirement i historycznych labels. Relacje wymagają targetu, label field, cardinality, permission i scope targetu, zachowania missing target i delete, mapowania importu oraz testów search i API. Bieżące relation options mają limit 200; nazwane testy nie dowodzą każdej domeny targetu.
Bieżące reguły
- required
- date
- integer
- float
- less than
- less than or equal
- greater than
- greater than or equal
- equal
- not equal
- regular expression
Niepotwierdzone przez generic validator
- conditional requiredness
- cross-field rule
- cross-record rule
- uniqueness
- aggregate invariant
- temporal invariant
- external validation
Zapisy odrzucają undeclared keys i ograniczają obecne custom-field keys do 128. Fieldsets grupują prezentację lub warianty; nie są typami encji, schematami, granicami autoryzacji ani state machine cyklu życia.
Zakres, dostęp, usuwanie i concurrency
Definicje mogą rozwiązywać global, tenant i organization według specificity i czasu; scoped tombstones mogą ukryć inherited definitions, a restore może je ponownie ujawnić. Testuj wrong tenant, wrong organization, selected organization, global fallback, inherited fields i tombstones. Definition view/manage, granty generic record, features modułu targetu, relation lookup, ekran, CRUD, export, search, import i API key to oddzielne powierzchnie autoryzacji.
Pola, definicje encji i rekordy mają oddzielne soft-delete. Usunięta definicja encji może pozostawić zapisane rekordy. Opcjonalne expected-version headers mogą odrzucić stale edit schematu, encji i rekordu; bez version header bieżący additive locking może kontynuować. Testuj oddzielnie concurrent order pól, definition, metadata, update i delete rekordu.
Cykl zmiany schematu i szyfrowania
Zapisz discovery, kompatybilność, backfill, dual read lub write, walidację, uzgodnienie, rollback, komunikację i dowód retirement. entities install służy wyłącznie do synchronizacji deklaracji. Nie wykonuje ogólnej migracji danych ani destrukcyjnych schema diffs.
- 1. additive field
- 2. required or default change
- 3. option change
- 4. validation tightening
- 5. type change
- 6. key rename
- 7. relation change
- 8. encryption or scope change
- 9. removal
Szyfrowanie wybranych pól chroni przyszłe zapisy przy działających tenant encryption services. Nie zapewnia szyfrowania całej bazy, kontroli dostępu, residency ani compliance. Istniejący plaintext wymaga resave lub backfill. Przetestuj KMS i fallback, rotację kluczy, deterministic hash lookup, search, sort, filter, indexes, exports, backups, logs, integrations i recovery.
Nazwij wejścia, właściciela, dowód, rollback i downstream consumers.
- 1
propose
- 2
classify
- 3
model
- 4
review
- 5
configure or code
- 6
install
- 7
migrate or backfill
- 8
validate
- 9
publish
- 10
monitor
- 11
change
- 12
deprecate
- 13
retire
- business concept owner
- data owner
- schema owner
- domain or module owner
- security and access approver
- migration owner
- integration owner
- reporting owner
- acceptance owner
- change approver
Trzy syntetyczne decyzje modelowania
Wczytaj rekord strukturalny, aby sprawdzić shape, uzasadnienie, fragment kontraktu, dowód, eskalację i stop bez danych klienta.
Wyłącznie hipotetyczny
Synthetic controlled customer attribute
Wyłącznie hipotetyczny
Synthetic organization equipment register
Wyłącznie hipotetyczny
Synthetic consequential regulated object
Narzędzie lokalne
Rejestr decyzji modelu danych
Zaczyna pusty i pozostaje lokalnie w tej przeglądarce. Użyj kompletnego rekordu do planowania. Rejestr nie zatwierdza schematu ani nie akceptuje migracji.
Nie wpisuj danych rzeczywistych: Używaj wyłącznie etykiet strukturalnych. Nie wpisuj realnych pojęć firmy, field keys, values, danych osobowych, credentials, id tenantów lub organizacji, wrażliwych klasyfikacji, produkcyjnych URL ani skopiowanych schematów.
Prywatność: Strona nie wysyła treści arkusza i nie zapisuje jej w adresie URL ani w plikach cookie.
Pakiet odbioru i rozróżnienie stanów
Uwzględnij wejście normalne, graniczne, awaryjne i adversarial, zakres, autorytet, wynik, dowód, sprzątanie, właściciela i powtarzalne kryterium pass.
- 1. create
- 2. read
- 3. update
- 4. delete
- 5. required, default and null
- 6. every used kind
- 7. multiple values
- 8. validation
- 9. static options
- 10. dictionary
- 11. relations
- 12. fieldsets
- 13. tenant and organization scope
- 14. definition ACL
- 15. record ACL
- 16. search
- 17. filter
- 18. sort
- 19. export
- 20. encryption
- 21. concurrency
- 22. representative volume
- 23. history
- 24. audit and undo
- 25. import
- 26. API and integrations
- 27. schema change
- 28. backfill
- 29. rollback
- 30. entity deletion with surviving records
- 31. tombstone and restore
- 32. downstream schema refresh
- empty value
- invalid type
- undeclared key
- more than 128 present custom-field keys
- duplicate business identifier
- deleted option
- missing relation target
- wrong scope
- denied role
- stale version
- KMS unavailable
- old plaintext value
- spreadsheet-formula prefix
- high volume
- downstream stale schema
Pokazuj i testuj ten stan niezależnie od stanów empty i unavailable.
- field absent
- field hidden
- field denied
- definition inactive
- definition tombstoned
- dependency unavailable
- record empty
- record deleted
- true null
- true zero or false
Przed twierdzeniem, że search, filter, sort, list, export lub relation selectors pasują do skali, wymagane są testy na reprezentatywnym wolumenie.
Zatrzymaj lub odłóż
- unclear business concept.
- no accountable owner.
- unsettled tenant or organization scope.
- unknown source authority.
- unresolved security or sensitivity.
- incompatible downstream consumers.
- missing migration and rollback.
- untestable history or retention.
- consequential domain forced into generic storage.
Praktyczne pytania
Kiedy wystarczy pole własne?
Pole własne służy do dodania atrybutu istniejącego rekordu. Osobna tożsamość, proces, uprawnienia lub relacje mogą wymagać encji własnej albo modułu przygotowanego przez programistę.
Czy można później zmienić typ lub klucz pola?
To zmiana modelu danych. Sprawdź zapisane wartości, importy, filtry i integracje, a potem przećwicz konwersję oraz wycofanie. Zmiana etykiety nie przenosi odwołań na inny klucz.
Czy szyfrowanie pola zastępuje kontrolę dostępu?
Szyfrowanie wybranych pól wymaga konfiguracji i działających usług szyfrowania tenantu. Starsze dane mogą wymagać ponownego zapisu. Uprawnienia, eksporty, indeksy wyszukiwania i logi trzeba sprawdzić osobno.
Czy usunięcie definicji encji usuwa jej rekordy?
Definicje, pola i rekordy mają odrębną obsługę usuwania logicznego w opisanym kodzie. Zaplanuj porządkowanie danych, okres przechowywania i odtwarzanie. Jedna operacja usunięcia nie gwarantuje usunięcia wszystkich kopii.