𝗕𝘂𝗶𝗹𝗱𝗶𝗻𝗴 𝗮 𝗣𝗿𝗼𝗷𝗲𝗰𝘁 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁 𝗧𝗼𝗼𝗹 𝘄𝗶𝘁𝗵 𝗣𝗿𝗶𝘀𝗺𝗮
ನಾನು Trello ನಂತಹ ಸಹಯೋಗದ (collaborative) ಪ್ರಾಜೆಕ್ಟ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಟೂಲ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದೇನೆ. ನಾನು React, Express.js, PostgreSQL ಮತ್ತು Socket.io ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೇನೆ.
ಮೊದಲ ಹಂತವೆಂದರೆ ಡೇಟಾಬೇಸ್ ಸ್ಕೀಮಾ (database schema). ಬಳಕೆದಾರರು (users), ಪ್ರಾಜೆಕ್ಟ್ಗಳು (projects), ಬೋರ್ಡ್ಗಳು (boards), ಕಾರ್ಯಗಳು (tasks), ಕಾಮೆಂಟ್ಗಳು (comments) ಮತ್ತು ಅಧಿಸೂಚನೆಗಳನ್ನು (notifications) ನಿರ್ವಹಿಸಲು ನಾನು ಆರು ಮಾಡೆಲ್ಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿದ್ದೇನೆ.
ನನ್ನ Prisma ಸ್ಕೀಮಾ ವಿನ್ಯಾಸದಿಂದ ಪಡೆದ ಪ್ರಮುಖ ತಾಂತ್ರಿಕ ಆಯ್ಕೆಗಳು ಮತ್ತು ಪಾಠಗಳು ಇಲ್ಲಿವೆ:
• IDಗಳಿಗಾಗಿ CUID ಬಳಸಿ
ನಾನು ಎಲ್ಲಾ IDಗಳಿಗಾಗಿ @default(cuid()) ಅನ್ನು ಬಳಸುತ್ತೇನೆ. ಸಾರ್ವಜನಿಕ URLಗಳಿಗಾಗಿ ಇವು ಸಾಮಾನ್ಯ ಸಂಖ್ಯೆಗಳಿಗಿಂತ ಉತ್ತಮವಾಗಿವೆ. ನಿಮ್ಮಲ್ಲಿ ಎಷ್ಟು ರೆಕಾರ್ಡ್ಗಳಿವೆ ಎಂದು ಜನರು ಊಹಿಸದಂತೆ ಇವು ತಡೆಯುತ್ತವೆ.
• ಸ್ಪಷ್ಟವಾದ ರಿಲೇಶನ್ ಹೆಸರುಗಳು (Explicit Relation Names) ಎರಡು ಫೀಲ್ಡ್ಗಳು ಒಂದೇ ಮಾಡೆಲ್ ಅನ್ನು ಸೂಚಿಸಿದಾಗ, Prisma ಗೊಂದಲಕ್ಕೀಡಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಕಾರ್ಯಕ್ಕೆ (task) ಒಬ್ಬ ಸೃಷ್ಟಿಕರ್ತ (creator) ಮತ್ತು ಒಬ್ಬ ನಿಯೋಜಿತ ವ್ಯಕ್ತಿ (assignee) ಇರುತ್ತಾರೆ. ಇಬ್ಬರೂ Users ಆಗಿರುತ್ತಾರೆ. ಮೈಗ್ರೇಶ