Rules of Persistence Layer (DB Schema and SQL) and Git Process Meeting Minutes
Meeting Info ¶
| Date | 2022-06-02 |
|---|---|
| Topic | Rules of Persistence Layer (DB Schema and SQL) and Git Development Process |
| Attendee | Calvin Yan, Rocky Chi, Daniel Zhou, Ted Zhao, Jackson Liu, Albert Wang |
| Note Taker | Rocky Chi |
| Timer | Jackson Liu |
| Duration | 90 minutes |
Meeting Agenda ¶
-
Summary and finalize part of persistence layer rule (20 minutes)
- brainstorm about the best way to collect our thoughts (PR, survey…)
- finalize Database rule
- finalize SQL rule - I will send out another survey tomorrow
-
Discussion on best practice of git development process (20 minutes)
- please prepare certain git knowledges such as branch managing, merge strategy…
- some references: About collaborative development models, Comparing Workflows
Meeting Minutes / Action Items: ¶
Summary and finalize part of persistence layer rule ¶
- DB Schema rule survey result:
- SQL rule survey result:
- Results for controversial rules:
| Rule Name | Result | Comments |
|---|---|---|
| Define table name as [table_business_name]_[table_purpose]. | Recommend | |
| Try to define database name same with the application name. | Recommend | |
| Update column comments once column meaning is changed or new possible status values are added. | Mandatory | |
| Appropriate char column length not only saves database and index storing space, but also improves query efficiency. | Recommend | |
| Business logic related procedures are not allowed. They are difficult to debug, extend and not portable. | Mandatory | added a precondition: only suitable for Business logic related procedures |
| IN clause should be avoided. Record set size of the IN clause should be evaluated carefully and control it within 1000, if it cannot be avoided. | Mandatory / Recommend | run execution plan before evulation: if the index invalidation, then don't use in. |
| characters should be represented and stored with UTF-8, and be cautious of character number counting. | Recommend | remove precondition on i18n case. |
| TRUNCATE is not recommended when coding, even if it is faster than DELETE and uses less system, transaction log resource. Because TRUNCATE does not have transaction nor trigger DB trigger, problems might occur. | Recommend | think before you delete |
Git Development Process ¶
- Do not make your branch long-lived.
- Develop the feature based on your own fork.
Additional output ¶
- Timer has the right to control meeting duration, incase overdue.

