सिफारिश
टेबल नाम को फील्ड नाम में प्रीफिक्स न करें (जैसे user_name)। इसके बजाय username या केवल name उपयोग करें (यदि संदर्भ स्पष्ट हो)।
कारण
- अस्पष्टता:
user.nameबनामuser.user_name- दोनों काम करते हैं लेकिन पहला साफ है - अतिरेक: टेबल नाम पहले से संदर्भ देता है
- नामकरण सम्मेलन: कॉलम नाम एकवचन संज्ञा होना चाहिए जो एट्रिब्यूट दर्शाता है
- ORM/फ्रेमवर्क: अधिकांश ORMs (Hibernate, Entity Framework, Django) डिफ़ॉल्ट रूप से कॉलम नाम = प्रॉपर्टी नाम अपेक्षा करते हैं
उदाहरण: सही डिज़ाइन
mysql> CREATE TABLE `user` (
-> username VARCHAR(20),
-> password VARCHAR(20)
-> );
Query OK, 0 rows affected (0.66 sec)
mysql> INSERT INTO `user` VALUES('John', 'J_635');
Query OK, 1 row affected (0.34 sec)
mysql> INSERT INTO `user` VALUES('Carol', 'Carol2212');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO `user` VALUES('David', '@12345678');
Query OK, 1 row affected (0.14 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM `user`;
आउटपुट:
+----------+-----------+
| username | password |
+----------+-----------+
| John | J_635 |
| Carol | Carol2212 |
| David | @12345678 |
+----------+-----------+
3 rows in set (0.00 sec)
नामकरण सर्वोत्तम अभ्यास
| पैटर्न | उदाहरण | सिफारिश |
|---|---|---|
| टेबल_कॉलम | user_name, user_email | बचें |
| सिर्फ कॉलम | username, email | पसंदीदा |
| टेबल एकवचन | user, account, profile | पसंदीदा |
| कॉलम एकवचन | name, email, created_at | पसंदीदा |
आरक्षित शब्द नोट
user MySQL में आरक्षित शब्द है (सिस्टम टेबल mysql.user)। टेबल नाम के लिए बैकटिक्स उपयोग करें: `user`।
निष्कर्ष
username या name (यदि अस्पष्ट न हो) उपयोग करें। user_name अनावश्यक रूप से लंबा और कम मानक है।