Dan*_*umb 5 mysql database-design types
我有一个数据库,存储(除其他外),以下信息:
BIGINT小号BIGINTsVARCHAR小号VARCHAR小号我希望能够捕获这些数据类型的更精确的定义.例如,硬件ID没有数字意义,因此我不关心它们在显示时的格式.但是,存储容量是基数,并且根据用户的要求,我想向它们提供数千和小数分隔符,例如123,456.789.因此,我想改进BIGINT,说ID_NUMBER和CARDINAL.
与硬件名称相同,硬件名称是简单文本和WWPN,它们是十六进制字符串,例如24:68:AC:E0.因此,我想提炼VARCHAR成ENGLISH_WORD和HEXSTRING.
我编写的特定数据类型仅用于说明目的.
我想将所有这些信息保存在一个地方,我想知道是否有人知道在MySQL表定义中保存这一切的好方法.我可以使用表定义的Comment字段,但这对我来说有点腥味.
一种方法是在别处定义数据结构并使用该定义来生成我的CREATE TABLEs,但这将是我目前所拥有的代码的主要返工,所以我正在寻找替代方案.
有什么建议?正在使用的应用程序语言是Perl,如果有帮助的话.
一个好方法是使用视图.例如,要将逗号插入基数,您可以使用:
mysql> create table foo (id int);
Query OK, 0 rows affected (0.12 sec)
mysql> insert into foo (id) values ( 123456789);
Query OK, 1 row affected (0.00 sec)
mysql> create view v_foo as select format(id, 0) as id from foo;
Query OK, 0 rows affected (0.10 sec)
mysql> select * from v_foo;
+---------------+
| id |
+---------------+
| 123,456,789 |
+---------------+
1 row in set (0.02 sec)
Run Code Online (Sandbox Code Playgroud)
您可以使用其他字符串函数来格式化其他字段,并将它们存储在视图定义中.
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |