我现在想创建用于存放用户帐号对应ID和单价这两个类型,不知道怎么写,请教。示例:
[UserName]          CHAR(15) NOT NULL,                --用户名按照这个格式来写,则:
[Author]  ...[Price]  ...
Author是用int吗?Price是用smallmoney吗?特别是单价,以前我在MySQL是decimal(5,2)这样写的,不知道MSSQL怎么写了,因为发现有smallmoney类型。后面对应的按照上面示例格式怎么写?谢谢。

解决方案 »

  1.   

    Author应该是作者吧?为什么不用nvarchar?mssql也有decimal,除非非常精确的金融系统,否则用decimal足够了。
      

  2.   


    是的,Author是用户名,对应的另一个用户表里面的UID,这里只是存放一下数字,不是存放帐号字符。谢谢
      

  3.   

    那INT可以,不过这个和UID的类型要统一。另外,如果你的系统不仅仅在大陆使用,也就是港澳台甚至外国也有,那么要把所有存放文字的列类型改成nvarchar/nchar,插入数据的使用在前面用N,如insert into tb(name)values(N'ShunYea'),这样在多语言环境下就不会有乱码
      

  4.   


    哦,那我这样写是吧:
    [Author] INT NOT NULL,INT后面要有括号吗?[Price]还是不会写。我系统目前应该只是在大陆使用。带N的貌似更占数据库体积吧。
      

  5.   

    create table test ([Author] int not null,[Price] decimal(5,2))这样就可以了。带N的是占多一倍的空间,但是可以解决多语言乱码的问题,所以根据你的需要选择
      

  6.   


    谢谢,目前我看不需要多语言,呵呵。但是price不能用smallmoney或者money吗?我看这两个字段是MSSQL特有的,MySQL没有,所以才来问这个,难道还是继续使用decimal(5,2)?
      

  7.   

    可以继续用,smallmoney或者money有一些限制,不是非常适合用。
      

  8.   


    我的UID是[UserID]            INT IDENTITY(1,1),跟这个[Author] INT NOT NULL,对应了吧?
      

  9.   

    这样的话你的[Author] 可以,但是插入新数据的时候UID要先插入,然后获取这个UID,再插入到Author那里。这样才统一数据