Data Packing (Global)
High-quality technical overview of Data Packing in the context of blockchain security.
Usage: 1. Link tables (Many-to-Many). 2. Weak entities. 3. Partitioning. Performance: Affects index size and join speed. Alternatives: Surrogate Keys (UUID/Incremental ID). Rules: Columns in a composite key cannot be NULL.
graph LR
Center["Data Packing (Global)"]:::main
Rel_data_modeling["data-modeling"]:::related -.-> Center
click Rel_data_modeling "/terms/data-modeling"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
Imagine you are making a list of students in a school. If you just use 'First Name' as the key, you'll have a problem if there are two students named 'John'. If you use 'First Name' and 'Last Name', it's better, but you might still have two 'John Smiths'. A composite key is like using 'First Name' + 'Last Name' + 'Birthday'. Only when you put all three together do you get a unique way to identify every single person without mistakes.
🤓 Expert Deep Dive
Technically, a composite key is often used to enforce 'Business Logic' at the database level. For example, in an 'OrderDetails' table, a composite key of (OrderID, ProductID) ensures that the same product cannot be added twice to the same order. From a performance standpoint, the order of columns in a composite key is critical because it determines how the 'B-Tree Index' is built. Most databases can only efficiently use the index if the leftmost column of the key is included in the query's WHERE clause. In NoSQL databases like DynamoDB, a similar concept exists with 'Composite Primary Keys' consisting of a Partition Key and a Sort Key, which allows for efficient range queries within a specific partition.